gpt4 book ai didi

Vue.js 嵌套路由与默认 child

转载 作者:搜寻专家 更新时间:2023-10-30 22:09:14 27 4
gpt4 key购买 nike

我对 Vue.js 2 中的默认子路由有疑问。

当我最初访问 localhost/listings 时,它会正确加载 index.vue 和 map.vue 作为子项。

当我使用 router-link 导航到 localhost/listings/1,然后使用 router-link 返回到 localhost/listings 时,它仍然加载 show.vue 模板。 这不应该发生?

我没有导航守卫或任何应该干扰的东西。无论如何要纠正这个?

我的路线:

window.router = new VueRouter({
routes: [
...

{
path: '/listings',
name: 'listing.index',
component: require('./components/listing/index.vue'),
children: [
{
path: '',
component: require('./components/listing/map.vue')
},
{
path: ':id',
name: 'listing.show',
component: require('./components/listing/show.vue')
}
]
},

...
]
});

最佳答案

如果你想要一个默认的子路由,“父”路由器不应该被命名,所以使用 :to="{name: 'listing.index'}",使用默认子路由(例如 :to="{name: 'listing.map'}")。

代码应该是这样的:

window.router = new VueRouter({
routes: [

...

{
path: '/listings',
component: require('./components/listing/index.vue'),
children: [
{
path: '',
name: 'listing.map'
component: require('./components/listing/map.vue')
},
{
path: ':id',
name: 'listing.show',
component: require('./components/listing/show.vue')
}
]
},

...

]
});

关于Vue.js 嵌套路由与默认 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40750846/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com