React 中的事件总线events

第一步:安装events依赖 

yarn add events   //通过yarn安装
npm add events //通过npm安装

第二步:在App.js中引入events

import { EventEmitter} from 'events'

第三步:创建一个变量

//事件总线events bus
const eventBus = new EventEmitter()

第四步:调用eventsBus

export default class EventsBus extends Component {
    render() {
        return (
            <div>
                <button onClick={e=>this.emmitEvent()}>点击</button>
            </div>
        )
    }
    emmitEvent(){
        eventBus.emit("sayHello","hello Home",123)   //通过eventBus.emit来抛出事件
    }
}

第五步:监听事件

//添加事件监听
  componentDidMount(){
    eventBus.addListener("sayHello",this.handleSayHelloListener)
//注意:不能加小括号,不是调用该函数
  }
  //取消事件监听
  componentWillUnmount(){
    eventBus.removeListener("sayHello",this.handleSayHelloListener)
  }
  handleSayHelloListener(num,message){   //单独写一个函数,用来使用
    console.log(num,message);
  }

 

posted @ 2022-01-16 14:21  无何不可88  阅读(596)  评论(0)    收藏  举报