vue动态添加路由,跳转页面时,页面报错路由重复:vue-router.esm.js?8c4f:16 [vue-router] Duplicate named routes definition: { name: "Login", path: "/login" }
1.vue项目安装依赖项的时候总是报错
2.vue动态添加路由,跳转页面时,页面报错路由重复:vue-router.esm.js?8c4f:16 [vue-router] Duplicate named routes definition: { name: "Login", path: "/login" }
3.vue 自动导入unplugin-auto-import4.安装vue开发者工具5.node,vue安装加上环境配置6.36个vue开发技巧7.The "TypeScript Vue Plugin (Volar)" extension is no longer needed since v2. Please uninstall it.报错之前用了一个vue-element-admin做了一个小项目,里面用到了动态添加路由,动态展示侧边栏,
当我切换页面时,控制台总是警告提示路由重复,连续跳转几次页面后,控制台就被这些警告占满了,
于是处理一下
原因addRoutes 方法仅仅是帮你注入新的路由,并没有帮你剔除原有的其它路由!
我们先看一下原来代码
路由拦截器中的代码:
permission.js:
if (roles) { function asyncFun(){ return new Promise(function(resolve){ store.dispatch('permission/GenerateRoutes', { roles }).then(() => { // 生成可访问的路由表 router.addRoutes(store.getters.routers); // 动态添加可访问路由表 router.options.routes=store.getters.routers; }); resolve(); }) } asyncFun().then(()=>{ next(); }); }
上面 调用的addRoutes()方法是router自带的原生方法,是动态添加路由的,它并没有删除之前路由中原有的路由!!
我们需要在动态添加路由时,清空一下之前的路由,就可以防止报这个错误
我们需要添加一个自定义方法,来清空之前的路由,因为这个permission.js中用的router是从router.js中引用进来的,所以要在router.js中增加这个自定义方法:
router.js中增加如下方法:
router.selfaddRoutes = function (params){ router.matcher = new Router().matcher; router.addRoutes(params) }
因为router.js最后导出的是router对象。所以我们只需要在这个router对象里加上这个方法即可
之后将permission.js中的router.addRoutes替换成router.selfaddRoutes即可
转载https://www.cnblogs.com/fqh123/p/11571688.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】