使用vue+vue-router时兄弟组件通讯的一些疑问
使用vue+vue-router时的一些疑问:
问题一:兄弟组件怎样传值?比如A页面与B页面是根组件的两个子组件,它们两个就是兄弟组件,那么如果想A页面跳转B页面时,将A页面的一些数据带到B页面,应该怎样做才是最好?
我的想法:1.通过路由的动态片段传值过去
router.map({
'/user/:username': {
component: {
template: '<p>用户名是{{$route.params.username}}</p>'
}
}
})
2.让根组件做桥梁传递值
即A组件$dispatch给根组件,然后根组件收到了再$broadcast给B组件。额,想是这样想,但实现起来好像还是有点问题,A组件$dispatch根组件能收到A传过来的值没问题,但这时还是在A页面,还没切换到B页面去,那根组件在什么时机去$broadcast,B页面才能收到?
问题二:因为使用vue-router要用<router-view> 渲染匹配的组件。还是上面的A页面B页面,根组件用<div id="app"></div>表示,这时如果A页面与B页面都需要props,那怎样传递?
1.如果不使用vue-router
<div id="app">
<A :prop-a="a"></A>
<B :prop-b="b"></B>
</div>
这样当然是没问题很容易可以做到。
2.使用vue-router
<div id="app">
<router-view></router-view>
</div>
问题是:这里使用了<router-view>代替了与,虽然<router-view>也可以传递props,但这样的话难道要<router-view :prop-a="a" :prop-b="b"></router-view>这样写在一起?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
可以在路由的切换钩子函数中,通过
transition.from
拿到跳转前页面的route
通过
props
没有
vue-router
的话,在A组件beforeDestroy
的时候$dispatch
需要的数据,父组件接收并且在$nextTick()
中$broadcast
,B组件接收到数据vuex
向上派发:dispatch 向下广播:broadcast
demo:https://github.com/TIGERB/eas...
组件通讯问题都交给vuex解决吧