React消息订阅与发布机制

本文介绍了如何利用pubsub-js库在React组件之间进行通信。首先,通过npm安装并引入模块。然后,展示了一个基本的使用流程,包括订阅、发布和取消订阅的方法。在实际应用中,通常在组件的componentWillUnmount生命周期方法中取消订阅以避免内存泄漏。最后,给出了一个实际案例,展示了发布消息的组件和订阅消息的组件如何协同工作。
摘要由CSDN通过智能技术生成

1. 安装并引入模块

npm install pubsub-js
import PubSub from 'pubsub-js';
// or when using CommonJS
const PubSub = require('pubsub-js');

2. 基本使用

  1. 先订阅,再发布
  2. 适用于任意组件间通信
  3. 要在组件的componentWillUnmount中取消订阅
// 创建订阅的回调函数
var mySubscriber = function (msg, data) {
    console.log(msg, data);
};

// 订阅
var token = PubSub.subscribe('MY TOPIC', mySubscriber);

// 发布
PubSub.publish('MY TOPIC', 'hello world!');

// 取消指定订阅
PubSub.unsubscribe(token);
// 取消一个函数的所有订阅
PubSub.unsubscribe(mySubscriber);

3. 基本案例

React不同组件之间的通信。

1. 发布消息的组件

import PubSub from 'pubsub-js';

...
PubSub.publish('msg', { isFirst: false, isLoading: true });
...

2. 订阅消息的组件

import PubSub from 'pubsub-js';

...
componentDidMount() {
    // 直接将回调函数写在一起
    // 不需要回调函数的第一个参数,用_占位
    this.token = PubSub.subscribe('msg', (_, stateObj) => {
        this.setState(stateObj);
    });
}

componentWillUnmount() {
    PubSub.unsubscribe(this.token);
}
...

参考链接:pubsub-js

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

火星飞鸟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值