我想在进入一个路由的时候,默认就跳转到这个路由的一个子路由中,需要怎么配置?

在我的routes.js中:

...
children: [
    {
      path: 'a',
      name: 'a',
      title:'a',
      component: (resolve) => require(['./views/a/a.vue'], resolve)
    },
    {
      path: 'b',
      name: 'b',
      title:'b',
      component: (resolve) => require(['./views/b/b.vue'], resolve),
      children: [
        {
          path: 'c',
          name: 'c',
          title:'c',
          component: (resolve) => require(['./views/b/ccc.vue'], resolve)
        },
      ]
    },
    ...

我想在进入path: 'b'的时候,默认就跳转到path: 'c',请问这个怎么实现呢?需要怎么配置?

如果我不想通过redirect:'/b/c'这种方式,因为嵌套层数太多。

阅读 5.5k
2 个回答

既然提问改了,我也顺便把答案改了吧XD

 {
    path: 'b',
    name: 'b',
    title:'b',
    component: (resolve) => require(['./views/b/b.vue'], resolve),
    redirect: 'b/c',   // 当进入路由b时重定向,前面不写'/'会自动连接上更前面的路由地址
    children: [
        {
          path: 'c',
          name: 'c',
          title:'c',
          component: (resolve) => require(['./views/b/ccc.vue'], resolve)
        },
    ]
},
// c和b之间失去父子关系,当进入b时路由保持为b的路由地址,但是实际显示的界面是c
{ path: '/c', component: C, alias: '/b' }
// 在b界面中实现,当进入b时直接跳转到b的子路由c
this.$router.push('c')
//可以这样定义
{
      path: '/b',
      name: 'b',
      component: B
      ,children:[
        { path: '/b', component: C},
        { path: '/b/c', component: C}
      ]
}
//也可以用下面的重定向
{
      path: 'b',
      name: 'b',
      component: B
      ,children:[
        {path: b,redirect: c},
        { path: c, component: C}
      ]
}
推荐问题