vue组件之间通讯,通过props和@event($emit('event'))的方式传递数据和改变数据,存在诸多不方便,因此可以采用事件总线的方式(event-bus)的方式注册监听和派发事件。
具体步骤如下:
1. 给vue原型上挂载一个vue示例(bus)
![](https://img.haomeiwen.com/i16511686/9932593b076262ff.png)
2.在需要的地方注册监听事件
![](https://img.haomeiwen.com/i16511686/4b8bb124fddf4158.png)
3.派发事件
![](https://img.haomeiwen.com/i16511686/59bc14b088ad9be6.png)
总结:event-bus 解决了组件之间通讯的方式,但是组件直接通过props传值的方式还是没有解决,可以结合“provide-inject”的方式传递值
参考code:https://github.com/wxStart/vueTestCode/tree/event-bus 测试代码地址
网友评论