在vue 中组件通信可以通过自定义属性 、发布订阅事件,而在react中都是用props来进行通信,但是这一通信局限于父子组件之间,如果是相邻兄弟或者爷孙这种组件通信呢?可以借助于一个第三方库 pubsub-js来进行消息的订阅与发布,具体使用方式如下:
第一步:项目中下载pubsub-js
npm i pubsub-js -S
第二步:项目中使用
2.1 导入pubsub
import pubsub from 'pubsub-js'
2.2 消息的订阅与发布
child1组件中订阅一个事件
pubsub.subscribe('event1',()=>{alert('child1中订阅的事件')}
child2组件中发布这一事件
alertHandler=()=>{pubsub.publish('event1')}
<button onClick={this.alertHandler}>点击触发child1组件订阅的event事件</button>
注意:child1组件和child2组件都要引入pubsub 才可以使用
网友评论