欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 事件总线—Event Bus 使用及讲解

事件总线—Event Bus 使用及讲解

2024/10/24 15:51:10 来源:https://blog.csdn.net/XYX8958/article/details/143208670  浏览:    关键词:事件总线—Event Bus 使用及讲解

一、工作原理

事件总线,主要用来实现非父子组件之间的传值。

它的工作原理:通过new Vue()再创建一个新的 Vue 实例对象bus,将这个新的实例对象作为桥梁,来实现两个组件之间的传值。

二、工作步骤

1、创建事件总线 bus

我们可以在项目的 src 目录中,新建一个/utils/bus.js 文件,然后在该文件中,来生成 bus 对象:

import Vue from "vue";
const bus = new Vue();
export default bus;

2、设置监听器(给 bus 添加事件)

我们需要在“接收数据”的组件中,给事件总线身上添加一个事件。

import bus from "./bus.js";
export default{mounted() {// 给事件总线身上添加一个事件(箭头函数默认不会执行)bus.$on("getData",(data) => {console.log("其他组件传递的数据",data);})}
}

3、调用 bus 的事件

我们在需要“传递数据”的组件中,来调用事件总线身上的方法,同时传值:

import bus from "./bus.js";
export default{data() {return {num: 1,};},methodes: {postData() {// 调用事件总线身上的方法,同时传值bus.$emit('getData',this.num);},},
};

三、注意事项

在使用事件总线时,负责“接收数据”的组件,需要提前先渲染出来,执行生命周期函数,同时给事件总线添加事件。

如果“接收数据”和“传递数据”的组件是同时渲染出来的,我们就可以用事件总线来实现两个组件之间的传值。但是,如果“接收数据”的组件,比“传递数据”的组件后渲染,就不能使用事件总线。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com