vue切换角色后权限不同,清除之前动态添加的路由
由于项目中需要区分用户权限进行动态路由的加载,而用户登出时需要把路由初始化,因此要解决该问题的方法有如下两种:
1、用户登出时使用 location.reload(),但是用户体验不好,会有闪屏。
2、则是在用户登出时重置 matcher,在router/index.js文件中操作
const createRouter = () => new Router({ // mode: 'history', // 去掉url中的# base: process.env.BASE_URL, scrollBehavior: () => ({ y: 0 }), routes: constantRoutes }) const router = createRouter() // 重置 export const resetRouter =() => { const newRouter = createRouter() // 初始化之后的matcher替换当前router的matcher router.matcher = newRouter.matcher // the relevant part } export default router