(三)兄弟组件传值
2023年3月13日
一、兄弟组件传
- 消息订阅与发布,使用第三方库
pubsub-js
二、使用第三方库来实现消息订阅与发布
- 引入第三方库
- 在需要接收数据的组件去订阅消息,
Pubsub.subscribe()
返回的是一个消息ID在不需要订阅的时候可以明确的知道需要取消订阅那个消息
/**
* 订阅消息的回调函数,当有人发布消息了就会触发这个函数
* @param {string} 发布消息的名字
* @param {any} 发布消息传递的数据
*/
let Fn = function(msg, data) {
...
}
let token = Pubsub.subscribe('订阅的消息名字', Fn)
- 在需要传递数据的组件去发布消息
Pubsub.publish('订阅消息的名字(记住是订阅消息的名字)', '需要传递的数据')
三、取消订阅消息
在组件将要被卸载的时候,就可以像定时器之类的,可以把他取消订阅不在占用系统资源
class xxx extends React.Component {
// 组件即将卸载,取消订阅消息
componentWillUnmount() {
Pubsub.unsubscribe('取消订阅的ID')
}
}
Loading...