解决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 相关文章推荐
自己的js工具 Cookie 封装
Aug 21 Javascript
js window.onload 加载多个函数和追加函数详解
Jan 08 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
Nov 29 Javascript
AngularJS 日期格式化详解
Dec 23 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
Jan 24 Javascript
基于JavaScript实现焦点图轮播效果
Mar 27 Javascript
JavaScript实现简单图片轮播效果
Aug 21 Javascript
vue脚手架及vue-router基本使用
Apr 09 Javascript
vue 实现通过手机发送短信验证码注册功能
Apr 19 Javascript
12 种使用Vue 的最佳做法
Mar 30 Javascript
如何修改Vue打包后文件的接口地址配置的方法
Apr 22 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
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
jQuery实现字体颜色渐变效果的方法
2017/03/29 jQuery
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
angular动态表单制作
2018/02/23 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
jQuery操作事件完整实例分析
2020/01/10 jQuery
微信小程序webSocket的使用方法
2020/02/20 Javascript
Python中的jquery PyQuery库使用小结
2014/05/13 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
python实现对csv文件的列的内容读取
2018/07/04 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
Python 解决相对路径问题:&quot;No such file or directory&quot;
2020/06/05 Python
html5中的一些标签学习(心得)
2016/10/18 HTML / CSS
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
德国黑胶唱片、街头服装及运动鞋网上商店:HHV
2018/08/24 全球购物
建筑行业的大学生自我评价
2013/12/08 职场文书
考试违纪检讨书
2014/02/02 职场文书
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
2014年学习厉行节约反对浪费思想汇报
2014/09/10 职场文书
乡镇党委书记个人整改措施
2014/09/15 职场文书
2014年基层党建工作总结
2014/11/11 职场文书
delete in子查询不走索引问题分析
2022/07/07 MySQL