消息订阅-发布机制 PubSubJS (组件消息传递)
1.工具库:PubSubJS
2.下载:npm i pubsub-js --save
3.使用:
1) import PubSub from 'pubsub-js' //引入
2) PubSub.publish('atguigu',{isFirst:false,isLoading:true}) //发布消息 atguigu
3)1) PubSub.subscribe('atguigu',(_s,stateObj)=>{ console.log(stateObj) }) //订阅
在react中使用,无论是那个文件使用都要引入 import PubSub from 'pubsub-js'
发布消息
//发送请求前通知App更新状态
PubSub.publish('atguigu',{isFirst:false,isLoading:true})
订阅消息
componentDidMount() {
this.token = PubSub.subscribe('atguigu',(_s,stateObj)=>{
console.log(_s,stateObj);
//第一个参数_s是发布消息的名称atguigu,第二个参数的就是发布的数据{isFirst:false,isLoading:true}
this.setState(stateObj)
})
}
componentWillUnmount(){
PubSub.unsubscribe(this.token)//解除订阅
}
注:vue中使用的时候方式也是相同的。
不停学习,热爱是源源不断的动力。