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

Vue事件总线

下面,我们来系统的梳理关于 Vue 事件总线模式 的基本知识点

一、事件总线核心概念

1.1 什么是事件总线?

事件总线是一种发布-订阅模式的实现,用于在Vue组件之间进行通信,特别适合处理非父子关系的组件间通信。它充当一个中央事件处理中心,组件可以触发事件或监听事件,而不需要直接引用彼此。

1.2 事件总线原理

发布事件
通知订阅者
通知订阅者
发布事件
组件A
事件总线
组件B
组件C
组件D

1.3 适用场景

  • 非父子组件通信:兄弟组件、跨层级组件
  • 全局事件通知:用户登录/登出、全局错误处理
  • 解耦组件:避免组件间直接依赖
  • 简单状态变更:不需要复杂状态管理的场景

二、事件总线实现方案

2.1 Vue 2 实现

// event-bus.js
import Vue from 'vue'
export const EventBus = new Vue()// 或全局挂载
Vue.prototype.$eventBus = new Vue()

2.2 Vue 3 实现(推荐)

// event-bus.js
import mitt from 'mitt'// 创建事件总线实例
const emitter = mitt()// 添加高级功能
export const EventBus = {emit: emitter.emit,on: emitter.on,off: emitter.off,// 添加一次性事件监听once(event, handler) {const wrapper = (payload) => {handler(payload)this.off(event, wrapper)}this.on(event, wrapper)},// 添加带命名空间的事件namespacedEmit(namespace, event, payload) {this.emit(`${namespace}:${event}`, payload)},namespacedOn(namespace, event, handler) {this.on(`${namespace}:${event}

相关文章:

  • windows命令行面板升级Git版本
  • 面试总结一
  • 【HarmonyOS 5】 社交行业详解以及 开发案例
  • Tailwind CSS 实战:基于 Kooboo 构建 AI 对话框页面(七):消息框交互功能添加
  • 第二章支线八 ·CSS终式:Tailwind与原子风暴
  • 一个基于Java的简单抢单功能实现示例,模拟多线程环境下的并发抢单场景
  • c#基础010(程序结构)
  • JavaSec-XSS
  • Mysql 身份认证绕过漏洞 CVE-2012-2122
  • OpenResty 安装指南
  • DNS攻击类型有哪些?如何应对DNS攻击威胁?
  • 12.MySQL视图特性
  • 高敏感应用如何保护自身不被逆向?iOS 安全加固策略与工具组合实战(含 Ipa Guard 等)
  • 无法下载CUDA,下载界面链接打开异常
  • Linux网络——socket网络通信udp
  • 13.4 AI颠覆语言学习:预录制视频+GPT-4评估如何实现60%成本降低与40%留存飙升
  • JSON Web Token (JWT) 详解:由来、原理与应用实践
  • CloudCompare——计算点云表面曲率
  • 基于Docker Compose部署Java微服务项目
  • day47 TensorBoard学习
  • 网站菜单分类怎么做/不死鸟分享友情链接
  • 合肥经开区建设局网站/网络整合营销理论
  • zblog做的商城网站/爱站长
  • 本地网站建设多少钱/软文写作的基本要求
  • java网站开发文档课程设计/搜索引擎优化的主要工作有
  • 电子商务网站接口费率/百度网页版入口链接