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

 

posted @ 2022-06-02 15:32  何仙伟  阅读(1315)  评论(0编辑  收藏  举报