1 修改 router.ts 文件
import { addActiveRoutes } from './activeRoutes'
let init = true
router.beforeEach((to, from, next) => {
if (init) {
init = false
addActiveRoutes()
next(to)
return
}
})
export default router
2 添加 activeRoutes.ts 文件
import type { RouteRecordRaw } from 'vue-router'
const errorRoute = {
path: '/:pathMatch(.*)',
name: 'Error',
component: () => import('@/views/Error.vue'),
}
const activeRoutes: RouteRecordRaw[] = [
{
path: '/A',
name: 'A',
component: () => import('@/A.vue')
},
{
path: '/B',
name: 'B',
component: () => import('@/B.vue')
}
]
export const addActiveRoutes = () => {
if (***) {
activeRoutes.forEach((route) => {
if (router.hasRoute(route.name)) return
router.addRoute(route)
})
}
router.addRoute(errorRoute)
}
export const removeActiveRoutes = () => {
activeRoutes.forEach((route) => {
if (router.hasRoute(route.name)) {
router.removeRoute(route.name)
}
})
router.removeRoute('Error')
}
3 修改登录 Vue 文件
import { addActiveRoutes } from '@/router/activeRoutes'
addActiveRoutes()
4 修改退出登录 Vue 文件
import { removeActiveRoutes } from '@/router/activeRoutes'
removeActiveRoutes()