事件总线 event bus

时间:2021-08-12
本文章向大家介绍事件总线 event bus ,主要包括事件总线 event bus 使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
import React, { PureComponent } from 'react'
import {EventEmitter} from 'events';
//  yarn add events


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

class Home extends PureComponent{

    componentDidMount(){
        eventBus.addListener('sayHello',this.handleSayHelloListener)
    }

    componentWillUnmount(){
        eventBus.removeListener('sayHello',this.handleSayHelloListener);
    }

    handleSayHelloListener(...args){
        console.log(args);
    }

    render() {
        return (
            <div>
                Home
            </div>
        )
    }
}


class Profile extends PureComponent{
    render() {
        return (
            <div>
                Profile
               <button onClick={e =>this.emmitEvent()}>点击的Profile按钮</button> 
            </div>
        )
    }

    emmitEvent(){
        // eventBus.emit("sayHello","hello home",'123')
        // eventBus.emit("sayHello","hello home",'123',{
        //     id:1,
        //     age:25
        // })

        eventBus.emit("sayHello",{
            id:1,
            age:25
        })
    }
}

export default class App extends PureComponent {
    render() {
        return (
            <div>
                <Home />
                <Profile />
            </div>
        )
    }
}
我是Eric,手机号是13522679763

原文地址:https://www.cnblogs.com/eric-share/p/15132046.html