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

然后监听:

请问大家有好一点的方法吗?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这个用vuex不是挺好的吗?怎么会显得鸡肋?类似这种,用loginSuccess来控制是否显示用户头像,这样,我觉得用的还是挺愉快的

一、仅仅是想通知某个对象去更改状态,建议使用事件的方式
1.父子组件之间的事件通讯,通过在父组件监听对应的事件名,子组件触发的方式。
2.非父子组件采用Event Bus的方式
二、数据在组件之间的共享
1.中大型应用使用vuex
2.应用场景比较少的情况,父子组件采用props,非父子组件Event Bus传递数据