vue-router之退出处理

1、对于vue-router3 (vue2) 官方没有提供删除方法

策略:创建新的router对象,将matcher 赋值给旧的

const router1=new Vue ({...})  

const router2=new Vue ({...})  

router1.matcher = router2.matcher

const createRouter = () => new Router({
  // mode: 'history', // require service support
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRoutes
})

const router = createRouter()

// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
export function resetRouter() {
  const newRouter = createRouter()
  router.matcher = newRouter.matcher // reset router
}

2、vuew-router4 (vue3) 提供了

removeRoute 方法删除注册路由,
export function resetRouter(){
    let routers = router.getRoutes()
    routers.map(it=>{
        if(!['login','404','notFind'].includes(it.name)){
            router.removeRoute(it.name)
        }
    })
}

3、整体方案:

删除token,跳转到登录页,同时清除已注册路由(防止切换角色后还能访问另一个角色的权限),beforeEach中加有无token检测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值