import { EventEmitter } from 'events'
export default new EventEmitter()

  

import React from 'react';
import Bus from 'utils/eventBus'

export default function Comp1 (props) {

  const data = {
    msg: 'msg comes from comp1'
  }

  const handleClick = () => {
    console.log('click comp1')
    Bus.emit('is_from_comp1', data)
  }

  return (
    <h2 className="Comp1">
      组件1
      <button onClick={handleClick}>点击</button>
    </h2>
  )
}

  

import React, { useEffect, useState } from 'react';
import Bus from 'utils/eventBus'

export default function Comp2 (props) {
  const [msg, setMsg] = useState('comp2 default msg')

  useEffect(() => {
    Bus.addListener('is_from_comp1', data => {
      console.log(2, data);
      setMsg(data.msg)
    })
  }, [])

  return (
    <h2 className="Comp2">
      组件2  <span>{msg}</span>
    </h2>
  )
}

  

posted on 2022-06-30 10:40  ygunoil  阅读(297)  评论(0)    收藏  举报