搜索

首页  >  问答  >  正文

javascript - vuex如何更优雅地用于派发事件?

之前一直用new Vue()来定义一个全局通讯的Bus,这样组件之间通讯,只需要一边emit,另一边on监听就可以了。后来改用vuex,感觉上vuex理解上只是一个全局data,当需要派发事件的时候:例如A组件的一个事件,去触发B组件的一个方法(比如说,点击某按钮,取消一个定时器等),这个时候vuex就显得很鸡肋了,我现在用的方法是,定义一个布尔值,每次触发时,取false,然后在组件内watch这个值,调用方法。

如图:

然后监听:

请问大家有好一点的方法吗?

黄舟黄舟2803 天前773

全部回复(3)我来回复

  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:41:29

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:41:29

    这个用vuex不是挺好的吗?怎么会显得鸡肋?类似这种,用loginSuccess来控制是否显示用户头像,这样,我觉得用的还是挺愉快的

    回复
    0
  • 習慣沉默

    習慣沉默2017-05-19 10:41:29

    一、仅仅是想通知某个对象去更改状态,建议使用事件的方式
    1.父子组件之间的事件通讯,通过在父组件监听对应的事件名,子组件触发的方式。
    2.非父子组件采用Event Bus的方式

    二、数据在组件之间的共享
    1.中大型应用使用vuex
    2.应用场景比较少的情况,父子组件采用props,非父子组件Event Bus传递数据

    回复
    0
  • 取消回复