Как перейти к детскому маршруту по названию маршрута? - PullRequest
2 голосов
/ 13 марта 2019

Я знаю, что мы можем перейти к маршруту по его имени, используя $router.push({ name: 'route-name' }).

Что я хочу знать, так это как child route name.Это моя структура маршрута:

export default [
  {
    path: '/',
    name: 'home',
    component: () => import('@/views/Home.vue'),
    childs: [
      {
        name: 'home.about',
        path: '/about',
        component: import('@/views/Home/About.vue')
      }
    ]
  }
]

Но моя консоль говорит [vue-router] Route with name 'home.about' does not exist для $router.push({ name: 'home.about' }).

Что мне не хватает?

Obs: Идея в том,не направлять ребенка, используя хард route path.

Ответы [ 2 ]

1 голос
/ 13 марта 2019
 const router = new VueRouter({
  routes: [{ 
        path: '/foo',
        name: 'foo',
        component: Foo,
        children: [
        {
          path: 'fooChild1',
          name: 'fooChild1',
          component: FooChildComponent
        },
        {
          path: 'fooChild2',
          name: 'fooChild2',
          component: FooChildComponent
        }
      ]
    }, { 
        path: '/bar', 
        component: Bar
    }]
})

Теперь, если вы хотите перейти к fooChild1, используйте $ router.push ({name: 'fooChild1'}) или, если вы хотите перейти к fooChild2, используйте $ router.push ({name: 'fooChild2'})

1 голос
/ 13 марта 2019

У вас есть опечатка.

Это должно быть children, а не childs.

export default [
{
  path: '/',
  name: 'home',
  component: () => import('@/views/Home.vue'),
  children: [
   {
    name: 'home.about',
    path: '/about',
    component: import('@/views/Home/About.vue')
   }
  ]
 }
]
...