我有一些组件映射到多个不同的路由,我想知道为每个路由创建的组件在数据传递方式方面是否被视为同级组件?目前尚不清楚哪个组件是该结构中的父组件:
PageOne = Vue.extend( {
template: "#page-one"
})
PageTwo = Vue.extend({
template: "#page-two"
})
Home = Vue.extend({
template: "#home"
})
var router = new VueRouter()
router.map({
'/': {
component: Home
},
'/PageOne': {
component: PageOne
},
'/PageTwo': {
component: PageTwo
}
})
var App = Vue.extend({})
router.start(App, "#app")
因此,如果我想将数据从 Home
路由传递到 PageOne
,我是否需要使用全局事件总线,或者我可以使用 props 来传递数据从一条路线到下一条路线?
这是一个演示:http://codepen.io/p-adams/pen/kXwxRR
最佳答案
您应该使用 Vuex 的全局事件总线或状态管理,或者将它们设置为嵌套路由 ( http://router.vuejs.org/en/nested.html ):
router.map({
'/': {
component: Home,
subRoutes: {
'/PageOne': {
component: PageOne
},
'/PageTwo': {
component: PageTwo
}
}
}
})
如果你这样做,你可以将 props 传递给你的 <router-view>
:
<div id="app">
<router-view :foo="bar"></router-view>
</div>
关于javascript - Vue.js 中的同级组件与 vue-router ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38230990/