当前位置: 首页 > news >正文

eventBus 事件中心管理组件间的通信

EventBus(事件总线)是Vue中用于实现非父子组件间通信的轻量级方案,通过一个中央Vue实例管理事件的发布与订阅。

一、基本使用步骤

1.创建EventBus实例

推荐单独创建文件(如event-bus.js)导出实例,避免全局污染:

// event-bus.js
import Vue from 'vue';
export const EventBus = new Vue();

2.发送事件(发布)

在需要通信的组件中通过$emit触发事件,可传递数据:

import { EventBus } from './event-bus.js';
export default {methods: {sendData() {EventBus.$emit('event-name', { key: 'value' }); // 事件名 + 数据}}
};

2.接收事件(订阅)

在目标组件中通过$on监听事件,处理数据:

import { EventBus } from './event-bus.js';
export default {mounted() {EventBus.$on('event-name', (data) => {console.log('接收数据:', data); // 处理数据});}
};

3.移除监听(避免内存泄漏)

在组件销毁前(beforeDestroybeforeUnmount钩子)清理监听:

beforeDestroy() {EventBus.$off('event-name'); // 移除指定事件// EventBus.$off(); // 移除所有事件(无参数)
}

相关文章:

  • 4.17学习总结
  • 极狐GitLab 功能标志详解
  • 基于GTID的主从复制
  • ASP.NET Core中SqlSugar基本使用
  • MySQL主从复制实战指南(基于二进制日志)
  • Spring框架学习(上)
  • 2025年探秘特种设备安全管理 A 证:守护安全的关键凭证​
  • 深度学习-Torch框架-2
  • 【vue项目el-tree跨树批量拖拽】
  • Table类型的表单
  • SSM--容器
  • 从零开始 保姆级教程 Ubuntu20.04系统安装MySQL8、服务器配置MySQL主从复制、本地navicat远程连接服务器数据库
  • 乘用车制动系统设计:保障行车安全的核心技术
  • vue2 element-ui 中 el-radio 单选框点击事件失效问题
  • 士兵乱斗(贪心)
  • 大数吞小数
  • SDL基础
  • MCP理解笔记及deepseek使用MCP案例介绍
  • 探索鸡养殖虚拟仿真实验:科技赋能养殖新体验
  • 重工业数字化转型
  • 马上评|“衣服越来越难买”,对市场是一个提醒
  • 马上评|让查重回归促进学术规范的本意
  • 京东美团饿了么等外卖平台被约谈
  • 习近平举行仪式欢迎巴西总统卢拉访华
  • 习近平在中拉论坛第四届部长级会议开幕式的主旨讲话(全文)
  • 尊严的代价:新加坡福利体系下的价值困境