为了账号安全,请及时绑定邮箱和手机立即绑定

vue-router addRouter添加路由是往前添加路由么?

vue-router addRouter添加路由是往前添加路由么?

Qyouu 2018-07-07 18:26:01
我添加一些路由,后面跟404路由{path: '/*',name: 'error-404',meta: {         title: '404-页面不存在' }, component: () => import('@/views/error-page/404.vue')}而后又添加路由,后面的路由在访问时404没有匹配到,是不是后面的路由是添加到最前面?
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

直接*就好了 好像不用/

查看完整回答
反对 回复 2018-07-13
?
慕少森

TA贡献2019条经验 获得超9个赞

匹配优先级:有时候,同一个路径可以匹配多个路由,此时,匹配的优先级就按照路由的定义顺序:谁先定义的,谁的优先级就最高。
也就是添加新的路由的时候,是往后面添加。

对于*路由,代码做了特殊的处理。
大部分人对*的认识是一个后备路由,也就是别的路由都匹配不上的时候,使用*对应的路由。
源码src下面的create-route-map.js文件的第29-35行就是专门把*路由放到最后面的:

// ensure wildcard routes are always at the end
for (let i = 0, l = pathList.length; i < l; i++) {
  if (pathList[i] === '*') {
    pathList.push(pathList.splice(i, 1)[0])
    l--
    i--
  }
}

综上,添加路由的时候按照路由定义的顺序添加路由,最后把*路由换到最后面。


查看完整回答
反对 回复 2018-07-13
  • 2 回答
  • 0 关注
  • 1704 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信