消息订阅与发布(实现任意组件间通信)

一种组件间通信的方式,适用于任意组件间通信

利用第三方库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)
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值