vue切换用户时,重置路由

本文介绍了在Vue项目中如何处理后端动态传来的路由,特别是针对不同用户权限导致的菜单错乱问题。通过重置路由的方法,确保在用户切换时能够正确清除并更新动态加载的路由,保持菜单的正确显示。主要涉及Vue Router的使用技巧,包括错误处理和路由守卫。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前路由大多都是后端动态传过来的,不同用户菜单权限会有所不同,在切换用户时,会出现菜单错乱的情况,这时候就需要重置菜单了

import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
// 解决ElementUI导航栏中的vue-router在3.0版本以上重复点菜单报错问题
const originalPush = Router.prototype.push
Router.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}
export let routes = [{
        path: '/login',
        name: 'login',
       omponent: () => import('@/views/login/login'),
    }
]
const createRouter = () => new Router({
    routes: routes
})
const router = createRouter()
//写一个重置路由的方法,切换用户后,或者退出时清除动态加载的路由
export function resetRouter() {
    const newRouter = createRouter()
    router.matcher = newRouter.matcher // 新路由实例matcer,赋值给旧路由实例的matcher,(相当于replaceRouter)
}
export default router

 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值