Javascript 如果使用嵌套管线,嵌套管线组件是否会是其父管线组件的子级?
目前我有以下路线:Javascript 如果使用嵌套管线,嵌套管线组件是否会是其父管线组件的子级?,javascript,vue.js,vuejs2,vue-component,Javascript,Vue.js,Vuejs2,Vue Component,目前我有以下路线: { path: '/:username', component: Profile, children: [ { path: '', component: Map , name: 'Profile'}, { path: 'locations', component: Locations, name: 'Locations'}, { path: 'map', component: Map, name: 'Map'} ]}, 我需要一个标记:[]数组,它在
{ path: '/:username', component: Profile, children: [
{ path: '', component: Map , name: 'Profile'},
{ path: 'locations', component: Locations, name: 'Locations'},
{ path: 'map', component: Map, name: 'Map'}
]},
我需要一个标记:[]
数组,它在mounted()执行时从我的数据库中填充。此数组将用于映射
和位置
组件
这样做的最佳方式是什么。我可以:
- 将属性
标记:[]
和挂载()
每个组件的本地状态,只需对每个组件执行axios调用
组成部分。这意味着需要2次axios调用
- 将属性
标记:[]
和挂载()
这两个组件的父组件的本地状态,然后向下支撑
将数据传输到每个组件。这意味着1次axios调用,然后我只传递数据
但是,在第二种情况下,我不知道我是否能够用Props传递数据,因为我不确定嵌套路由中的组件是否实际上是父元素的子元素。简短的回答是肯定的,如果您的配置文件包含路由器视图,您可以使用$parent访问标记或使用Props传递它:
const Profile=Vue.extend({
模板:`
配置文件{{markers}
`,
数据(){
返回{
标记:[]
}
},
安装的(){
//假负荷
设置超时(()=>{
this.markers=['A','B','C'];
}, 1000);
}
})
const Map=Vue.extend({
模板:`
映射{{$parent.markers}
`,
})
const Locations=Vue.extend({
道具:['markers'],
模板:`
位置{{markers}}
`,
})
常数路由=[{
路径:“/”,
重定向:“配置文件”
},
{
路径:'/:用户名',
组成部分:个人资料,
儿童:[{
路径:“”,
组成部分:地图,
名称:“个人资料”
},
{
路径:'位置',
构成部分:地点,
名称:“地点”
},
{
路径:“地图”,
组成部分:地图,
名称:“地图”
}
]
}
]
常量路由器=新的VueRouter({
路线
});
新Vue({
路由器,
el:“#应用程序”
})
轮廓
地图
位置