当前位置: 首页 > ds >正文

React组件通信——发布订阅(pub/sub)

一、介绍

PubSubJS 是一个轻量级的发布-订阅(publish-subscribe)模式库,可以在 React 应用中实现组件间的松耦合通信,特别适合非父子组件或远房组件间的消息传递。

 推荐使用的情况

  • 通信双方不需要知道彼此存在

  • 一对多的消息分发需求

  • 需要降低系统耦合度

  • 需要支持未来未知的订阅者

  • 跨团队/跨模块协作开发

二、示例

安装 PubSubJS

npm install pubsub-js

1. 发布消息 (Publish)

import PubSub from 'pubsub-js';function PublisherComponent() {const handleClick = () => {// 发布名为 'TOPIC_NAME' 的消息,附带数据PubSub.publish('TOPIC_NAME', { data: '这是要传递的数据',timestamp: Date.now()});};return (<button onClick={handleClick}>发布消息</button>);
}

2. 订阅消息 (Subscribe)

import React, { useEffect } from 'react';
import PubSub from 'pubsub-js';function SubscriberComponent() {useEffect(() => {// 订阅消息const token = PubSub.subscribe('TOPIC_NAME', (msg, data) => {console.log('收到消息:', msg, data);});// 组件卸载时取消订阅return () => {PubSub.unsubscribe(token);};}, []);return <div>订阅者组件</div>;
}
http://www.xdnf.cn/news/14604.html

相关文章:

  • 紧急救援!Ubuntu崩溃修复大赛
  • 在Qt中使用OpenGL显示大量点(点云)
  • 136. 只出现一次的数字
  • 算法题(力扣每日一题)—改变一个整数能得到的最大差值
  • Arthas 全面学习指南
  • 动手实践:LangChain流图可视化全解析
  • [从0到1]环境准备--anaconda与pycharm的安装
  • Linux系统firewall-offline-cmd命令在企业网络安全防护中的应用案例分析
  • 图形编辑器基于Paper.js教程29:基于图层的所有矢量图元的填充规则实现
  • 【C++】list容器实现
  • Lighthouse与首屏优化
  • 【看到哪里写到哪里】如何在C中使用多进程设计(1)
  • STM32 开发 - STM32CubeMX 下载芯片支持包、创建 HAL 库工程
  • 牙科医疗设备EMC电磁兼容技术讨论
  • 数列的极限
  • 推荐标注数据标注
  • 【精选】计算机毕业设计基于SpringBoot高校社团管理系统 社团信息维护 活动发布报名 成员审核与公告发布平台源码+论文+PPT+讲解
  • Git(三) Git 分支工作流管理模型探究与实践
  • 电容篇---常见作用
  • Apache Iceberg与Hive集成:分区表篇
  • StarRocks Community Monthly Newsletter (May)
  • JavaScript中Date对象用法详解
  • 深入实践Caffeine+Redis两级缓存架构:从原理到高可用设计
  • 「Linux文件及目录管理」文件及目录操作类命令
  • Grdle版本与Android Gradle Plugin版本, Android Studio对应关系
  • OpenWrt:交叉编译openssl
  • redis缓存的基础知识
  • DBSCAN(Density-Based Spatial Clustering of Applications with Noise)基于密度的聚类方法介绍
  • 移动应用开发实验室web组大一下期末考核题解
  • 【arXiv2024】时间序列|TimesFM-ICF:即插即用!时间序列预测新王者!吊打微调!