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

使用全局事件总线实现任意组件间的通讯

本文以vue2中爷孙组件通讯为例,需求是点击孙组件的按钮,实现关闭爷组件的弹窗。

全局事件总线是通过Vue实例的事件系统来实现组件之间的通讯,可以方便地在任何组件中进行事件的触发和监听。

以下是使用全局事件总线实现爷孙组件通讯的步骤:

  1. 创建一个新的Vue实例作为全局事件总线,可以将其定义在一个单独的文件中,例如event-bus.js
    // event-bus.jsimport Vue from 'vue';
    export const EventBus = new Vue();
    

2.在爷爷组件中使用EventBus.$on监听事件,并在事件处理函数中关闭对话框:

// Grandparent.vue<template><div><Dialog :visible="dialogVisible"></Dialog></div>
</template><script>
import { EventBus } from './event-bus.js';export default {data() {return {dialogVisible: false};},created() {EventBus.$on('closeDialog', () => {this.dialogVisible = false;});}
};
</script>

3. 在孙组件中使用EventBus.$emit()触发事件

// Grandchild.vue<template><div><button @click="closeDialog">Close Dialog</button></div>
</template><script>
import { EventBus } from './event-bus.js';export default {methods: {closeDialog() {EventBus.$emit('closeDialog');}}
};
</script>

 通过以上步骤,可以使用全局事件总线实现爷孙组件之间的通讯。当孙组件中的按钮被点击时,会触发closeDialog事件,爷爷组件会监听到该事件并关闭对话框。

兄弟组件之间也可以使用全局事件总线实现数据共享;

总结步骤:

http://www.lryc.cn/news/308725.html

相关文章:

  • 文件基础和文件fd
  • 3dgs学习(二)—— 3d高斯与协方差矩阵及其几何意义
  • ZStack Cube超融合入选IDC《中国超融合基础架构市场评估》报告
  • 每日一题——LeetCode1556.千位分隔符
  • 8.网络游戏逆向分析与漏洞攻防-游戏网络架构逆向分析-游戏底层功能对接类GameProc的实现
  • Redis冲冲冲——事务支持,AOF和RDB持久化
  • 路由菜单路径匹配方法
  • 设计模式浅析(九) ·模板方法模式
  • 无用工作、UBI与AI
  • 【监控】grafana图表使用快速上手
  • Django常用命令
  • 【center-loss 中心损失函数】 原理及程序解释(更新中)
  • 什么是 HTTPS 证书?作用是什么?
  • 为什么软考报名人数越来越多?
  • 【投稿优惠|快速见刊】2024年图像,机器学习和人工智能国际会议(ICIMLAI 2024)
  • html2canvas 将DOM节点转成图片
  • 【多线程】常见锁策略详解(面试常考题型)
  • Python列表操作函数
  • Qt注册类对象单例与单类型区别
  • Rocky Linux 运维工具yum
  • linux下的ollama
  • YOLOv9详细解读,改进提升全面分析(附YOLOv9结构图)
  • html基础操练和进阶修炼宝典
  • 从Mysql 数据库删除重复记录只保留其中一条(删除id最小的一条)
  • 从http到websocket
  • UE5 C++ Widget练习 Button 和 ProgressBar创建血条
  • 抖店无货源违规频发,不能入驻?这个是真的吗?
  • HarmonyOS—开发云数据库
  • mysql查询某个数据库的数量有多少GB
  • table展示子级踩坑