解决vue路由name同名,路由重复的问题


Posted in Javascript onAugust 05, 2020

在项目中,想让路由后缀为空,或者index的时候,都跳转到路由为index的页面,于是在router中如下配置

routes: [{
  path: '/',
  name: 'index',
  component: () => import('@/components/index').then(m => m.default)
 },{
  path: '/index',
  name: 'index',
  component: () => import('@/components/index').then(m => m.default)
 }]

但是浏览器告警信息:

[vue-router] Duplicate named routes definition: { name: "index", path: "/index" }

因为路由重复添加,name一样造成,利用redirect重定向

routes: [{
  path: '/',
  redirect: {
   name: index
  }
  // name: 'index',
  // component: () => import('@/components/index').then(m => m.default)
 },{
  path: '/index',
  name: 'index',
  component: () => import('@/components/index').then(m => m.default)
 }]

补充知识:vue路由使用踩坑点:当动态路由再使用路由name去匹配跳转时总是跳转到根路由的问题

闲话少说,直接问题:

之前我的路由时这么写的

{
  path:'/serverInfo/:id',
  name:'serverInfo',
  component:() => import('@/views/serverRequest/SRInfo')
}

但是呢,头部做了个通知面板,代码如下:

<el-popover
     popper-class="messagePopper"
     placement="bottom"
     width="300"
     v-model="visiblity"
     trigger="click">
     <div class="messageBox">
      <div class="title">通知</div>
      <div class="message" v-if="messageData.length === 0">暂无通知</div>
      <div v-else>
      <div class="message" v-for="item in messageData" @click="readMessage(item.id)">
       <router-link :to="{
        name:item.route,
        params:{
         messageId:item.rid
        }
       }">{{'【' + item.message + '】'}}</router-link>
       <span>{{item.message_time}}</span>
      </div>
      </div>
     </div>
     <el-badge slot="reference" :value="messageData.length" class="item" :hidden="messageData.length === 0">
      <i class="messageStyle iconfont icon-tongzhi"></i>
      <span class="messageText">通知</span>
     </el-badge>
    </el-popover>

看一下router-link部分通过name去跳转,并传递参数。

然后我们可以看一下页面,order路由正常的,serverInfo就不正常了

解决vue路由name同名,路由重复的问题

我们看下后台返回数据也是正常的有路由名字,这就很惆怅了。

然后我们看下order的路由,order没有动态路由匹配。

{
path:'/order',

name:'order',

component:() => import('@/views/system/order')
},

所以初步猜测:是不是有动态路由匹配时,通过路由name去跳转,就会匹配不到全路径,而跑到根路由去呢?

我们现在把serverInfo路由改一下:去掉动态路由匹配

{
  path:'/serverInfo',
  name:'serverInfo',
  component:() => import('@/views/serverRequest/SRInfo')
}

改了之后,我们之前使用到的路由跳转的地方也得改下。我们需要传参数的地方就通过下面这种去传,也是一样的

// <router-link :to="'/serverInfo/'+scope.row.srid"> 
<router-link :to="{name:'serverInfo',params:{id:scope.row.srid}}">
<span>{{scope.row.srid}}</span>
</router-link>

改成这样只会就发现一切正常了

解决vue路由name同名,路由重复的问题

所以总结一下:

当使用动态路由匹配的时候,再想通过name去跳转是会有问题的。当你想用路由name去跳转的时候,就不要使用动态路由匹配,需要传参数,就使用params去传递参数。

以上这篇解决vue路由name同名,路由重复的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 小型打飞机游戏实现原理说明
Oct 28 Javascript
实现js保留小数点后N位的代码
Nov 13 Javascript
jQuery中extend函数详解
Jul 13 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
Mar 28 Javascript
php register_shutdown_function函数详解
Jul 23 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
Oct 24 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
Dec 29 jQuery
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
Apr 24 Javascript
修改Vue打包后的默认文件名操作
Aug 12 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
Oct 02 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 Vue.js
vue实现书本翻页动画效果实例详解
Apr 08 Vue.js
解决vue项目input输入框双向绑定数据不实时生效问题
Aug 05 #Javascript
Vue 同步异步存值取值实现案例
Aug 05 #Javascript
详解vue路由
Aug 05 #Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
Aug 05 #Javascript
vant 自定义 van-dropdown-item的用法
Aug 05 #Javascript
浅谈vue 多个变量同时赋相同值互相影响
Aug 05 #Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
Aug 05 #Javascript
You might like
MYSQL环境变量设置方法
2007/01/15 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
javascript jQuery插件练习
2008/12/24 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
2013/12/03 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
JQuery复制DOM节点的方法
2015/06/11 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
Vue解析带html标签的字符串为dom的实例
2019/11/13 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
小程序中的箭头函数的具体使用
2020/06/19 Javascript
用Python实现web端用户登录和注册功能的教程
2015/04/30 Python
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
python实现扫描日志关键字的示例
2018/04/28 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
解决Python中定时任务线程无法自动退出的问题
2019/02/18 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
营销人才自我鉴定范文
2013/12/25 职场文书
运动会广播稿80字
2014/01/23 职场文书
教师个人剖析材料
2014/02/05 职场文书
社区党务公开实施方案
2014/03/18 职场文书
马智宇结婚主持词
2014/04/01 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
2014教师年度思想工作总结
2014/11/10 职场文书
幼儿园母亲节活动总结
2015/02/10 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
亮剑观后感
2015/06/05 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
JS实现九宫格拼图游戏
2022/06/28 Javascript