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

中央事件bus

中央事件bus的使用

使用场景:当需要传递给多个组件的时候例如父组件->子组件->孙组件,甚至还得传递到更深的组件的时候中央事件就起到了作用,不需要一直传递。bus其实就是一个发布订阅模式,利用vue的自定义事件机制

// 事件总线class EventBus {// 事件总线类构造器constructor() {// 收集订阅信息,调度中心this.list = {};}/*** 订阅事件* @param {string} name - 事件名称* @param {function} callback - 事件回调函数*/on(name, callback) {this.list[name] = this.list[name] || [];this.list[name].push(callback);}/*** 发布事件* @param {string} name - 事件名称* @param {any} data - 载荷(传入订阅时绑定的事件回调函数中的数据)*/emit(name, data) {if (this.list[name]) {this.list[name].forEach((callback) => {callback(data);});}}/*** 取消订阅事件* @param {string} name - 事件名称*/off(name) {if (this.list[name]) {delete this.list[name];}}
}
//export default EventBus;// 实例化事件总线对象
const eventBus = new EventBus();export default eventBus;

在需要的文件引入

例如 在A页面点击或者其他操作的时候通过触发发布事件把参数传到目的文件 B/C/D/E或者更多的文件

// A文件页面
<el-button @click='handleClick'></el-button>import bus from './eventBus';handleClick() {bus.$emit('getBus', {text: '测试数据'})// 在B页面或者其他页面bus.$on("getBus", (val) => { console.log('获取测试数据', val);});}// 在下次调用之前需要先取消订阅// 在这个钩子函数处理beforeDestroy() {bus.$off('getBus')
}
http://www.lryc.cn/news/356643.html

相关文章:

  • 中国上市企业行业异质性数据分析
  • 【全开源】防伪溯源一体化管理系统源码(FastAdmin+ThinkPHP和Uniapp)
  • 鸿蒙ArkUI-X跨语言调用说明:【平台桥接(@arkui-x.bridge)】
  • ts面试题: 面试题2
  • .NET 某和OA办公系统全局绕过漏洞分析
  • Git-01
  • GitLab的原理及应用详解(七)
  • Vue中使用Vue-scroll做表格使得在x轴滑动
  • 【高频】从输入URL到页面展示到底发生了什么?
  • 【CSharp】ushort[]的IntPtr快速转换为ushort[]无符号短整型数组
  • 释放 OSINT 的力量:在线调查综合指南
  • 22.Volatile原理
  • Vue 3中的v-for指令使用详解
  • GB-T 43694-2024 网络安全技术 证书应用综合服务接口规范
  • AI大模型:掌握未知,开启未来
  • 【C语言习题】26.字符逆序
  • windows和linux下的库文件比较
  • 第七十九节 Java面向对象设计 - Java访问级别
  • Vue进阶之Vue项目实战(四)
  • fix leakage脚本
  • MySQL中视图是什么,有什么作用
  • 【面试题】JavaScript基础高频面试(下)
  • 对于个人而言,大数据时代如何更好地管理自己的信息?
  • oj项目后端分析
  • 书籍学习|基于SprinBoot+vue的书籍学习平台(源码+数据库+文档)
  • AI学习指南数学工具篇-MATLAB中的凸优化工具
  • 散户如何参与期权交易?
  • Unity Apple Vision Pro 开发(一):开发前期准备【软硬件要求 | 开发者模式 | 无线调试打包】
  • IGMP——组播成员端网络协议
  • Java break细节(标签)