vue-router.esm.js?8c4f:16 [vue-router] Duplicate named routes definition: { name: “Dashboard“, path:

最近在做动态路由,遇到很多问题。刚才碰到个一直警告路由重复,但是事实上我的路由并没有重复的信息。

在这里插入图片描述
这个是我的首页,我一步一步追踪路由信息变化发现,因为这个首页是我的公共路由,加载时会重复加载。原因呢,很简单,router的原生addRoutes方法是添加路由信息。我在项目中把后端返回的动态路由是通过addRoutes添加的。但是我只添加每次加载时吃书画的公共路由信息都会存在,因此会出现重复的情况。我们只需要在添加路由前给路由信息删除了再去添加不就解决了吗:

router.$addRoutes = function(params) {
    router.matcher = new Router({ mode: 'history' }).matcher;
    router.addRoutes(params)
export default router
}

在router/index的路由文件中,给router对象中加上一个自定义的方法,在方法中先初始化路由信息,再去添加就可以啦

之后在我们的路由拦截中调用此方法替换addRoutes就OK了

  routers.addRoutes(accessRoutes)

至此,问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值