(三)兄弟组件传值

老怪兽2023年3月13日
  • 兄弟组件传值
  • react
大约 1 分钟

一、兄弟组件传

  1. 消息订阅与发布,使用第三方库 pubsub-js

二、使用第三方库来实现消息订阅与发布

  1. 引入第三方库
  1. 在需要接收数据的组件去订阅消息, Pubsub.subscribe() 返回的是一个消息ID在不需要订阅的时候可以明确的知道需要取消订阅那个消息
/**
 * 订阅消息的回调函数,当有人发布消息了就会触发这个函数
 * @param {string} 发布消息的名字
 * @param {any} 发布消息传递的数据
*/
let Fn = function(msg, data) {
  ...
}
let token = Pubsub.subscribe('订阅的消息名字', Fn)
  1. 在需要传递数据的组件去发布消息
Pubsub.publish('订阅消息的名字(记住是订阅消息的名字)', '需要传递的数据')

三、取消订阅消息

在组件将要被卸载的时候,就可以像定时器之类的,可以把他取消订阅不在占用系统资源

class xxx extends  React.Component {
  // 组件即将卸载,取消订阅消息
  componentWillUnmount() {
    Pubsub.unsubscribe('取消订阅的ID')
  }
}
Loading...