vue-router在两个以上子路由的情况下,跳转出错

Posted Xuhua123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue-router在两个以上子路由的情况下,跳转出错相关的知识,希望对你有一定的参考价值。

  先说原因: 子路由的路径如果是  :id  那么在添加相同级别的子路由就是没用的;因为 :id  可以匹配使一个路由匹配多个不同的子路由;

 

 今天做毕设的时候,想在原本就有子路由的 根路径上多加一个子路由,以实现 下方 tabbar 的点击不改变;

  {
    path: \'/home\',
    name: \'home\',
    component: Home,
    children: [
      {
        path: \':id\',
        component: Disc
      },
      {
        path: \'search\',
        component: Search
      }
    ]
  },

所以我直接将代码加成了这样,导致进入  /home/search 后立即返回了。

解决:

1. 将search改成跟/home同级别; 将search单独写成一个路由,那么tabbar就不方便一直在选中状态了;

2.将 子路由 :id 前面加一个前缀;这样需要改变相应的路由跳转代码;

  {
    path: \'/home\',
    name: \'home\',
    component: Home,
    children: [
      {
        path: \'disc/:id\', // 在router中就改变了这里
        component: Disc
      },
      {
        path: \'search\',
        component: Search
      }
    ]
  },

 

 正常实现了!!

 

以上是关于vue-router在两个以上子路由的情况下,跳转出错的主要内容,如果未能解决你的问题,请参考以下文章

vue之路由以及默认路由跳转

Vue总结第五天:vue-router (使用模块化(创建Vue组件)机制编程)router-link 标签的属性路由代码跳转懒加载路由嵌套(子路由)路由传递数据导航守卫)

vue-router路由跳转原理

vue-router路由传参

vue-router怎么给子路由传参

解决vue-router嵌套路由(子路由)在history模式下刷新无法渲染页面的问题