vue 中使用eventBus兄弟组件传递事件 实现方式

eventBus 适用于同级组件或者互无关系的页面之间通信,可以传递事件以及数据

1.在项目中新建一个JS文件 eventBus.js


image.png

2.在发送事件的页面

## 在<script>下引入 eventBus 
import eventBus from "@/utils/eventBus.js"; 

## 通过$emit() 传递事件
eventBus.$emit('eventName',{params:'传递的参数'})

3.在另一个一面的 mounted内 接收事件

  mounted() {
    ##在eventBus内的this会改变指向,所以声明that, $on 开启eventBus 监听

    let that = this;
    eventBus.$on("eventName",function (data) {
      console.log(data) // 打印结果 = '传递的参数'
    });
  }

4.接收事件的组件没挂载之前仍会接受 $emit,会排队等待dom挂载后 接收全部之前发出的事件,会报错 !

## 这是接收事件的页面

 mounted() {
    let that = this;
    eventBus.$on("eventName",function (data) {
      console.log(data) // 打印结果 = '传递的参数'
    });
  },
beforedestroy(){
## 在beforedestroy 关闭 eventBus监听

 eventBus.$off("eventName");
}

【有收获请点个赞哦~~】

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容