一种组件间通信的方式,适用于任意组件间通信
利用第三方库pubsub-js
(任何一个框架都可以使用)实现
安装第三方库pubsub-js
npm i pubsub-js
订阅消息:消息名
需要订阅消息(接收数据)的组件
//引入的pubsub是一个对象,使用时直接调用其自身的API
import pubsub from 'pubsub-js'
mounted(){
//第一个参数为消息名,第二个参数为接收到的数据,回调函数为普通函数时,this为undefined;
//所以需要写箭头函数(或者将回调函数配置到methods)才能保证数据的正常使用
this.pubId = pubsub.subscribe('hello',(msgName,data)=>{
//订阅消息回调
console.log('有人发布了hello消息',msgName,data);
})
},
beforeDestroy(){
//取消订阅,需要通过自定义的id取消
pubsub.unsubscribe(this.pubId)
}
发布消息:消息内容
发布消息(提供数据)的组件
import pubsub from 'pubsub-js'
mounted(){
//发布消息
pubsub.publish('hello',666)
},