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

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

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

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

阅读 3.9k
1 个回答

推荐vuex。

  1. 最开始项目感觉组件交互少,我也用的eventBus,但需求加着加着,通信越来越多,eventBus就不够直观,很容易出错了。比如,一个业务组件,复用在四五个地方,又同时和父,兄弟组件通信,这时eventBus就比较容易换乱了。
  2. vuex其实用起来更简单,对性能影响也比较小。
  3. 自己写demo,两个都用,联系一下;正式项目直接上vuex。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题