17. React消息订阅与发布 pubsub-js

1.React脚手架引入pubsub-js

yarn add pubsub-js

2. pubsub-js的使用

2.1 消息的订阅方和消息的发布方

  • 消息发布方
    定义消息名,和要发布的消息数据

  • 消息订阅方
    接受消息名,和消息数据

2.2 pubsub-js代码实现

2.2.1 发布消息(发布方)

  • 代码格式如下:
    PubSub.publish(消息名,消息数据)
import PubSub from "pubsub-js"

//在需要传递数据给其他组件的js方法中发布消息
pubsub_func(){
	PubSub.publish(“message_name”,{name:"zhangsan",age:18,id:1212})
}

2.2.2 订阅消息(订阅方)

  • 代码格式如下:
    PubSub.subscribe(消息名,(_,消息数据)=>{}) 形参
  • 订阅消息应该放在组件已经挂载页面的周期函数中componentDIdMount(){}
  • 把通过消息订阅获取的数据放入state中
import PubSub from "pubsub-js"

//接收消息的组件方
componentDidMount(){
	this.token = PubSub.subscribe("message_name",(msg,msg_obj)=>{
		this.setState(msg_obj)
	})
}

2.2.3 取消订阅(订阅方)

  • 在组件即将被卸载的时候,取消订阅
componentWillUnmount(){
	//组件即将被卸载
	PubSub.unsubscribe(this.token)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神奇洋葱头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值