Cpte-Vue3/src/router/router.ts

43 lines
1.1 KiB
TypeScript
Raw Normal View History

2025-10-17 18:03:34 +08:00
/*
* HMR
*/
import type {Router, RouterHistory} from 'vue-router';
import {createRouter as createVueRouter, createWebHistory, createWebHashHistory, RouterOptions} from 'vue-router';
export let router: Router = null as unknown as Router;
export function setRouter(r: Router) {
router = r
}
let webHistory: Nullable<RouterHistory> = null;
/**
*
* @param options
* @param useHashHistory 使 hash true使false使hash
*/
export function createRouter(options: Partial<RouterOptions>, useHashHistory = false) {
const createFn = useHashHistory ? createWebHashHistory : createWebHistory;
webHistory = createFn(import.meta.env.VITE_PUBLIC_PATH);
// app router
let router = createVueRouter({
history: webHistory,
routes: [],
...options,
});
setRouter(router)
return router
}
// 销毁路由
export function destroyRouter() {
setRouter(null as unknown as Router);
if (webHistory) {
webHistory.destroy();
}
webHistory = null
}