消息订阅-发布机制 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中使用的时候方式也是相同的。

posted @ 2021-06-30 16:12  小不点灬  阅读(483)  评论(0编辑  收藏  举报