React中,只有父子组件之前可以通过props进行通信,兄弟组件之间若想通信需要通过父子组件之间的关系一层一层传递,将信息传给共同的父组件,进而实现通信
这样做是非常繁琐的!!
因而 消息订阅和发布机制可以实现兄弟组件的通信,使用的库是PubSubJS
具体使用方法如下:
- yarn add pubsub-js 或者npm安装pubsub-js
- 在页面中引入PubSub
import PubSub from 'pubsub-js'
- 发布消息 PubSub.publish(message,data) => 发布(消息名,传递的参数)
PubSub.publish(‘aaaaa’, data) //发布消息
- 订阅消息 PubSub.subscribe(‘message’,(msg,Name)=>{}) => 订阅(消息名,(msg,参数名)) msg不用管
PubSub.subscribe('aaaaa',(msg,stateObj) => {
this.setState(stateObj)
}) //订阅消息
and还学会了两个单词
subsribe 订阅
publish 发布