Vue中的全局事件总线是一种组件间通信的方式,适用于任意组件间通信。全局事件总线并不是插件,配置文件等等,而是程序员在做Vue开发中总结积累的一套方法,是一套规则,只要满足这套规则,就可以实现组件间的通信。
在Vue中,可以通过调用$on
、$off
和$emit
方法来实现全局事件总线。
使用$emit
方法可以触发总线上指定的事件,例如:
this.$emit('eventName', param1, param2,...)
使用$on
方法可以监听总线上某个事件,例如:
this.$on('eventName', callbackFunction)
在回调函数中可以处理该事件。使用$off
方法可以清除总线上指定事件的监听器,例如:
this.$off('eventName')
使用$all.clear()
方法可以清除总线上所有已绑定的事件监听器,例如:
this.$all.clear()
需要注意的是,$emit
分发和$on
接收需要在onMounted
或之后的生命周期执行,否则无效。同时,刷新页面后,已更新的数据将回到初始值。