-
在控制台下载库:
npm i pubsub-js
2.引入:
import pubsub from 'pubsub-js'
使用:
(1 )订阅消息:(接收发布消息)
-
这里的hello必须要有
-
msgname --> 发布消息的消息名称,data --> 是消息的对象或者是值
-
这里回调函数的两个参数必须要有,否则报错!!
-
必须要写在mounted 挂载钩子里
mounted() {
// 回调函数接收两个被传过来的信息
// msgname,data 是发布消息传来的信息 a 是发布消息的名称,b是传来的对象
// 函数里必须接收两个数据
// hello是自定义名称
this.pubid = pubsub.subscribe('hello',(msgname,data)=>{
console.log('我是订阅消息:',msgname,data);
}) },
(2 )发布消息:(要传给订阅消息)
-
这里的名字是数据的名字,必须要写,订阅消息的msgname接收
-
this.message是我在data域里定义的数据
publishMessage(){
pubsub.publish('hello',this.message)
}
( 3 )在即将销毁的钩子取消订阅
-
这里最好用完后取消订阅
beforeDestroy() {
this.pubsub.unsubscribe(this.publid)
},
本方法不单单只适用于vue,由于vue的全局事件总线与此类似,所以vue很少使用
但是也是一个能实现任意组件通信的一种方法