解决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 相关文章推荐
jquery插件制作简单示例说明
Feb 03 Javascript
jquery交替变换颜色的三种方法 实例代码
Nov 19 Javascript
jquery html动态生成select标签出问题的解决方法
Nov 20 Javascript
推荐一款jQuery插件模板
Jan 09 Javascript
JavaScript实现简单获取当前网页网址的方法
Nov 09 Javascript
JS验证逗号隔开可以是中文字母数字
Apr 22 Javascript
jQuery中slidedown与slideup方法用法示例
Sep 16 Javascript
基于Javascript实现文件实时加载进度的方法
Oct 12 Javascript
浅谈pc端rem字体设置的问题
Aug 03 Javascript
vue组件父子间通信详解(三)
Nov 07 Javascript
iview同时验证多个表单问题总结
Sep 29 Javascript
详解vue中this.$emit()的返回值是什么
Apr 07 Javascript
解决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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
IIS+PHP+MySQL+Zend配置 (视频教程)
2006/12/13 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
JavaScript判断两种格式的输入日期的正确性的代码
2007/03/25 Javascript
jQuery点击弹出下拉菜单的小例子
2013/08/01 Javascript
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
多种方法实现JS动态添加事件
2013/11/01 Javascript
IE8下String的Trim()方法失效的解决方法
2013/11/08 Javascript
jQuery学习笔记之总体架构
2014/06/03 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
2018/07/25 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
Python字典对象实现原理详解
2019/07/01 Python
详解Python Qt的窗体开发的基本操作
2019/07/14 Python
用Python将Excel数据导入到SQL Server的例子
2019/08/24 Python
如何理解python中数字列表
2020/05/29 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
keras 自定义loss层+接受输入实例
2020/06/28 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
2014升学宴答谢词
2014/01/26 职场文书
仓库规划计划书
2014/04/28 职场文书
校园环保广播稿(3篇)
2014/09/15 职场文书
年度考核个人总结
2015/03/06 职场文书
公司员工手册范本
2015/05/14 职场文书
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫
Python 操作pdf pdfplumber读取PDF写入Exce
2022/08/14 Python