当前位置: 首页 > 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}
http://www.lqws.cn/news/151093.html

相关文章:

  • Cad 反应器 cad c#二次开发
  • 网络测试实战:金融数据传输的生死时速
  • 第16期_网站搭建_Go个人版网络验证 虚拟主机搭建笔记 不推荐没卡密没完全搭建成功
  • 26考研 | 王道 | 计算机组成原理 | 三、存储系统
  • Selenium常用函数介绍
  • C++自定义简单的内存池
  • App使用webview套壳引入h5(三)——解决打包为app后在安卓机可物理返回但是在苹果手机无法测滑返回的问题
  • C++学习-入门到精通【14】标准库算法
  • 996引擎-自定义装备/道具:限时装备、限时道具
  • 【Linux】 Linux 进程控制
  • mongodb源码分析session异步接受asyncSourceMessage()客户端流变Message对象
  • elementUI点击浏览table所选行数据查看文档
  • .net Span类型和Memory类型
  • 中国森林地上和地下植被碳储量数据集(2002~2021)
  • 在 Oracle 中,创建不同类型索引的 SQL 语法
  • Neo4j图数据库管理:原理、技术与最佳实践
  • MDK程序调试
  • 五、查询处理和查询优化
  • Spring Boot + Elasticsearch + HBase 构建海量数据搜索系统
  • Spring Boot 缓存注解详解:@Cacheable、@CachePut、@CacheEvict(超详细实战版)
  • 【Linux篇】0基础之学习操作系统进程
  • Selenium 查找页面元素的方式
  • 【hadoop】Flink安装部署
  • 华为OD最新机试真题-小明减肥-OD统一考试(B卷)
  • CLIP多模态大模型的优势及其在边缘计算中的应用
  • mac 电脑Pycharm ImportError: No module named pip
  • opencv如何在仿射变换后保留完整图像内容并自动裁剪
  • 数学建模-嘉陵江铊污染事件解题全过程文档及程序
  • 论文速读《DexWild:野外机器人策略的灵巧人机交互》
  • Uniapp 二维码生成与解析完整教程