解决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 相关文章推荐
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
Jun 26 Javascript
jquery 关于event.target使用的几点说明介绍
Apr 26 Javascript
js简单实现用户注册信息的校验代码
Nov 15 Javascript
jQuery网页版打砖块小游戏源码分享
Aug 20 Javascript
jquery获取点击控件的绝对位置简单实例
Oct 13 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
Jan 19 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
Mar 15 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
Jul 11 Javascript
npm scripts 使用指南详解
Oct 08 Javascript
详解Vue中的scoped及穿透方法
Apr 18 Javascript
微信小程序复选框实现多选一功能过程解析
Feb 14 Javascript
Vue Element UI自定义描述列表组件
May 18 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
国王的咖啡这么大来头,名字的由来是什么
2021/03/03 咖啡文化
thinkPHP实现表单自动验证
2014/12/24 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
javascript中获取下个月一号,是星期几
2012/06/01 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
2013/01/25 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
JavaScript中闭包的详解
2017/04/01 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
vue 设置路由的登录权限的方法
2018/07/03 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
layui操作列按钮个数和文字颜色的判断实例
2019/09/11 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
python采集博客中上传的QQ截图文件
2014/07/18 Python
Python3.x中自定义比较函数
2015/04/24 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
2017/01/20 Python
windows 下python+numpy安装实用教程
2017/12/23 Python
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
python实现输入数字的连续加减方法
2018/06/22 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
微软马来西亚官方网站:Microsoft马来西亚
2019/11/22 全球购物
大学生个人简历中的自我评价
2013/12/27 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
疾病捐款倡议书
2014/05/13 职场文书
国博复兴之路观后感
2015/06/02 职场文书
《植物妈妈有办法》教学反思
2016/02/23 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书
MySQL修改默认引擎和字符集详情
2021/09/25 MySQL
Python 中的 copy()和deepcopy()
2021/11/07 Python