vue 路由报[vue-router] Duplicate named routes definition
这里有两种解决办法:
1.检查下有没有name重名的路由,比如像下面这样:
{path: '/storage-pool',name: 'storagePool', // name 1component: Layout,children: [{path: 'drag-table',name: 'DragTable', // name 2meta: { title:'' },component: () => import('@/views/storage-pool/storage-pool/index')}]},
{path: '/pool',name: 'storagePool', // name 3component: Layout,children: [{path: 'drag-table',name: 'DragTable2', // name 4meta: { title: ''},component: () => import('@/views/storage-pool/storage-pool/index')}]},
以上demo 包括子路由一共有4个name值,其中name1 和name3 是重复的。这样就会产生Duplicate named routes definition 的警告了。
解决方式:
静态路由的解决方式很简单,只要调整一下name,使所有name 不重复即可.
例如,将以上的name 分别设置为name : 'storagePool' , name: 'DragTable', name: 'storagePool2', name: 'DragTable2'
2.如果发现自己的name并没有重名,那么一般是后台动态路由导致的报错警告。动态路由一般来说是通过后端接口返回拿到数据,然后在路由守卫router.beforeEach 中进行添加。
router.beforeEach(async(to, from, next) => {if (to.name === 'storageNew') {getAside().then(res => {router.addRoutes(res)next()})} else {next()}
})
以上demo 运行也会出现警告 Duplicate named routes definition,这里的重点是方法 addRoutes,因为: addRoutes 方法仅仅是帮你注入新的路由,并没有帮你剔除其它路由。
解决方式:
在router/index.js中写上这段代码:
import Vue from 'vue'
import Router from 'vue-router'Vue.use(Router)const createRouter = () => new Router({
mode: 'history',
routes: []
})const router = createRouter()export function resetRouter () {
const newRouter = createRouter()
router.matcher = newRouter.matcher // the relevant part
}export default router
然后做以下操作:
import { resetRouter } from router/index.jsrouter.beforeEach(async(to, from, next) => {if (to.name === 'storageNew') {getAside().then(res => {resetRouter() // 重置路由router.addRoutes(res)next()})} else {next()}
})
刷新页面会发现警告已经消失了。因为我负责的路由权限系统,router.addRoutes(res)仅仅是只执行一次,所以以上解决方法有效。
如果有的小伙伴的代码中,跳转动态路由执行了多次router.addRoutes(res),那就参考以下文章解决吧vue 路由警告 Duplicate named routes definition
vue 路由报[vue-router] Duplicate named routes definition相关推荐
- Duplicate named routes definition
初始化后台菜单的时候报了一堆Duplicate named routes definition, 原因:没有判断addRoutes是否成功,以下为正确逻辑:判断vuex中是否存在menus,当存在之后 ...
- vue 路由警告 Duplicate named routes definition
今天在开发的时候,项目报了一个警告 Duplicate named routes definition ,这里记录一下解决方式和思路. 警告产生的原因 根据提示内容,我们大概猜测是和路由的name有 ...
- 【记录21】[vue-router] Duplicate named routes definition: { name: “details“, path: “/equiment/details“
问题: 报错或预警:[vue-router] Duplicate named routes definition: { name: "details", path: "/ ...
- [vue-router] Duplicate named routes definition
浏览器告警信息 [vue-router] Duplicate named routes definition: { name: "index", path: "/inde ...
- Duplicate named routes definition:
[vue-router] Duplicate named routes definition: { name: "模板", path: "/exam/" } 这 ...
- vue-router.esm.js?081a:16 [vue-router] Duplicate named routes definition(问题篇)
1.vue路由报的警告,原因是路由name名称重复了.如下图: 2.解决办法: 找到src文件下router下的index.js文件. 修改name,将相同的name改一下名称 3.保存刷新页面,看控 ...
- 浏览器出现的报错信息为:Duplicate named routes definition: { name: home, path: /index }
路由这样写就会报上面的错误: {path: '/',name: 'home',component: home,redirect: '/index', }, {path: '/index',name: ...
- Duplicate named routes definition重复的路由名
改为这样就可以了
- vue-router.esm.js?fe87:16 [vue-router] Duplicate named routes definition:
解决办法
最新文章
- Linux修改文件权限为777
- 电磁场与电磁波第四章 时变电磁场
- Linux并发与同步专题 (1)原子操作和内存屏障
- 后端学习 - SpringMVC
- mysql --force -f_Mysql_mysql force Index 强制索引
- 计算机启动进入不了桌面图标,电脑开机后不显示桌面图标如何通过修改注册表解决问题...
- ajax提交时“加载中”提示的处理方法
- ESP32开发实例(七),WebServer使用
- Rusr Error: linker `x86_64-w64-mingw32-gcc` not found
- 5G系统——5G QoS
- 正则表达式详解(贪婪与懒惰、前瞻与后顾、后向引用等)
- Linux系统下查找最近修改过的文件
- stm32CubeMX+Proteus仿真OLED12864I2C
- RL极简入门:从MDP、DP MC TC到Q函数、策略学习、PPO
- 亚马逊echo中国使用_您是否需要Amazon Prime才能使用Amazon Echo?
- 位是存储在计算机中的最小单位,在计算机中信息存储的最小单位是什么?
- 你了解c++中的关键字virtual吗?
- CreateJS-TweenJS文档翻译
- MATLAB的比例图形制作
- 利用金箔形成的暗能量制造出的虫洞穿越空间的机器
热门文章
- GBT 35273-2020 信息安全技术 个人信息安全规范
- 蚌埠2021高考成绩查询,2021蚌埠市地区高考成绩排名查询
- 【商业分析】FinTech之支付宝 • 数字生活开放平台
- AI语音唤醒方案的设计与实现
- 什么样的工作是好工作?
- [061量化交易]python使用baostock下载全部行情数据
- C#桌面应用程序调用Ocx控件
- DTW(Dynamic Time Warping)动态时间规整——简单易懂
- IBM LinuxONE Community Cloud 免费试用申请教程
- 计算机教育研究生考什么,计算机在职研究生考什么科目