根据vue-router documentation嵌套路由的意思是使用另一个路由器视图插座来补充其父组件。简而言之:它是用于对子组件进行分组。每当直接访问此类子路由(例如通过刷新页面)时,所有父组件也会被呈现。
现在想象以下路线:
{
path: 'users', component: require('UsersIndex.vue'),
children: [
{ path: ':id', component: require('UserEdit.vue'), }
]
}
和UsersIndex.vue:
data() {
return { users: [] }
},
created() {
this.users = fetchUsers()
}
使用此模式,当直接访问UserEdit时,所有用户也将被提取,因为它是UsersIndex的子级。如何避免这种情况?
我想出了以下解决方案。它可以工作,但是我不确定这是否有效。感觉就像我是在对路径而不是对组件进行分组(因为children
属性是为了……)
{
path: 'users', component: { render: h => h('router-view') },
children: [
{ path: '', component: require('UsersIndex.vue'), }
{ path: ':id', component: require('UserEdit.vue'), }
]
}
我期待您的建议和/或其他可能的解决方案!