vue实现全局eventBus(全局事件总线)

基础知识:

  • Vue原型对象上有3个事件处理的方法: $ on() 、 $ emit() 、$ off()
  • 组件对象的原型对象是一个vm对象: 组件对象可以直接访问Vue原型对象上的方法

实现原理

  • 创建vm作为全局事件总线对象(main.js):
     Vue.prototype.$bus = new Vue()
  • 处理事件/接收数据的组件(绑定监听):
     this.$bus.$on('eventName', (data) => {})
  • 分发事件/传递数据的组件(触发回调用的组件):
     this.$bus.$emit('eventName', data)

可以理解为这是vm对象上面的两个方法,emit是触发事件,on是监听事件,所有不仅仅可以针对父子组件使用。只要这个vm对象全局可以看到,便可以全局使用这个方法。

猜你喜欢

转载自blog.csdn.net/qq_40844662/article/details/112169428
今日推荐