Vue2.0兄弟组件(或多级组件)间的通信用Vuex和EventBus哪种更好。

通过vuex的话,好像是需要创建一个多余的状态变量,然后通过A组件修改该状态,而B组件对该状态的变化进行监听,从而实现事件的传递。但是感觉上该状态变量的值并没有实际意义(毕竟只是变化这个动作本身起了作用),且要多绕一下vuex,不大直观。

而通过EventBus的话,感觉上更加直观,但是有时我需要知道我抛了一个事件出去后,到底有哪些组件在监听,就只能在代码中全局搜索该事件名了,维护上有些不便。

求教大神,是否有更好的办法来解决这个问题呢?


慕后森
浏览 1761回答 1
1回答

回首忆惘然

推荐vuex。最开始项目感觉组件交互少,我也用的eventBus,但需求加着加着,通信越来越多,eventBus就不够直观,很容易出错了。比如,一个业务组件,复用在四五个地方,又同时和父,兄弟组件通信,这时eventBus就比较容易换乱了。vuex其实用起来更简单,对性能影响也比较小。自己写demo,两个都用,联系一下;正式项目直接上vuex。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript