42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
|
import {
|
||
|
type RouteRecordRaw,
|
||
|
createRouter,
|
||
|
createWebHashHistory,
|
||
|
createWebHistory,
|
||
|
} from "vue-router";
|
||
|
|
||
|
/** 常驻路由 */
|
||
|
export const constantRoutes: RouteRecordRaw[] = [
|
||
|
{
|
||
|
name:'topic',
|
||
|
path: "/topic",
|
||
|
component: () => import("@/views/topic/KUNGalgameTopicPage.vue")
|
||
|
},
|
||
|
];
|
||
|
|
||
|
const router = createRouter({
|
||
|
history:
|
||
|
import.meta.env.VITE_ROUTER_HISTORY === "hash"
|
||
|
? createWebHashHistory(import.meta.env.VITE_PUBLIC_PATH)
|
||
|
: createWebHistory(import.meta.env.VITE_PUBLIC_PATH),
|
||
|
routes: constantRoutes,
|
||
|
});
|
||
|
|
||
|
/** 重置路由 */
|
||
|
export function resetRouter() {
|
||
|
// 注意:所有动态路由路由必须带有 Name 属性,否则可能会不能完全重置干净
|
||
|
try {
|
||
|
router.getRoutes().forEach((route: { name: any; meta: any }) => {
|
||
|
const { name, meta } = route;
|
||
|
if (name && meta.roles?.length) {
|
||
|
router.hasRoute(name) && router.removeRoute(name);
|
||
|
}
|
||
|
});
|
||
|
} catch (error) {
|
||
|
// 强制刷新浏览器也行,只是交互体验不是很好
|
||
|
window.location.reload();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export default router;
|