全局事件总线
一种组件间的通信方式,适用于任意组件间的通信。
安装全局事件总线:
引入/编写事件库
在入口文件中挂载
在组件中引入并使用
安装:npm install –save vue3-eventbus
挂载:
1
2
3//App.vue
import eventBus from 'vue3-eventbus'
app.use(eventBus)使用:
1
2
3
4
5
6
7
8//Button.vue
import bus from 'vue3-eventbus'
export default {
setup(){
bus.emit('foo',{a:'b'})
}
}消息订阅预发布(pubsub)
安装pubsub:npm install pubsub-js
引入:import pubsub from “pubsub-js”
接收数据,A组件想接收数据,则在A组件中订阅消息,订阅回调留在A组件自身。
1
2
3
4
5
6
7
8
9
10methods(){
demo(data){
}
}
mounted(){
this.pid=pubsub.subscribe('xxx',(msg,data)=>{
})//订阅消息
}- 提供数据:pubsub.publish(‘xxx’,数据)
- 最好在beforeDestroy钩子中,用Pubsub.unsubscribe(pid)取消订阅