Vue.js组件开发-使用EventBus实现组件间高效通信

news/2025/1/13 1:59:07/

在Vue.js中,EventBus是一种用于组件间通信的方式,特别是在没有父子关系的组件之间。我们可以创建一个空的Vue实例来作为事件总线。

实例:

展示如何使用EventBus实现两个兄弟组件之间的通信。

首先,我们需要创建一个EventBus:

import Vue from 'vue';
export const EventBus = new Vue();

接下来,创建两个兄弟组件,并通过EventBus进行通信。假设这两个组件分别是ComponentA.vueComponentB.vue

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue EventBus Example</title><script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
</head>
<body><div id="app"><component-a></component-a><component-b></component-b></div><script>// 创建一个EventBusconst EventBus = new Vue();// 定义ComponentAVue.component('component-a', {template: `<div><h3>Component A</h3><button @click="sendMessage">Send Message to Component B</button></div>`,methods: {sendMessage() {EventBus.$emit('message-from-a', 'Hello from Component A!');}}});// 定义ComponentBVue.component('component-b', {data() {return {message: ''};},template: `<div><h3>Component B</h3><p>{{ message }}</p></div>`,created() {EventBus.$on('message-from-a', (msg) => {this.message = msg;});}});// 初始化Vue实例new Vue({el: '#app'});</script>
</body>
</html>

说明:

这个例子中,ComponentA有一个按钮,当点击这个按钮时,会触发一个名为message-from-a的事件,并传递一条消息给其他监听该事件的组件。ComponentB在创建时开始监听这个事件,并在其回调函数中更新自己的数据属性message,从而显示从ComponentA接收到的消息。


http://www.ppmy.cn/news/1562671.html

相关文章

使用正则表达式读取文本数据【Python】

使用正则表达式读取文本数据 假如我们需要处理的数据具有很强的规律性, 例如下面这样, 数据基本上都是一个独立的一行, 并且每个数据都有名称标志. RUN OU 1.903784OV 1.862293OW 1.860681OUINV 548.000793STOP index 1V 0.000000W 0.000000E_theta 0.000000UINV 0.…

WebRtc04: JavaScript知识回顾

JavaScirpt调试方法 基础知识 变量与类型 基本运算 if/else for循环 函数 日志打印 console.log("xxx")

机器学习之留出法中的分层采样和多次切分

留出法(Hold-out Method) 本身是数据划分的一种方式,将数据集分为训练集和测试集。为了提升留出法的评估效果,常常结合分层采样和多次切分等技术。以下是详细说明这些方法如何增强留出法的效果。 1. 留出法(Hold-out Method) 留出法是将数据集划分为训练集和测试集的一…

HTML5 加载动画(Loading Animation)

加载动画&#xff08;Loading Animation&#xff09;详解 概述 加载动画是指在数据加载过程中&#xff0c;向用户展示的一种视觉效果&#xff0c;旨在提升用户体验&#xff0c;告知用户系统正在处理请求。它可以减少用户的等待焦虑感&#xff0c;提高界面的互动性。 常见的加…

PyTorch reshape函数介绍

torch.reshape 是 PyTorch 用于改变张量形状的函数之一。它不会改变张量的数据&#xff0c;而是重新组织其元素以适应新的形状。 reshape 的使用 torch.reshape(input, shape) → Tensorinput&#xff1a;输入张量。shape&#xff1a;新形状&#xff0c;使用整数或 -1 指定各维…

车载网络:现代汽车的数字心跳

在汽车领域&#xff0c;“智能汽车”一词毫不夸张。如今的汽车已不再是原始的机械工程&#xff0c;而是通过先进的车载网络无缝连接的精密数字生态系统。这些滚动计算机由复杂的电子控制单元(ECU)网络提供动力&#xff0c;ECU是负责管理从发动机性能到信息娱乐系统等一切事务的…

数据结构大作业——家谱管理系统(超详细!完整代码!)

目录 设计思路&#xff1a; 一、项目背景 二、功能分析 查询功能流程图&#xff1a; 管理功能流程图&#xff1a; 三、设计 四、实现 代码实现&#xff1a; 头文件 结构体 函数声明及定义 创建家谱树头结点 绘制家谱树&#xff08;打印&#xff09; 建立右兄弟…

JavaSE——网络编程

一、InetAddress类 InetAddress是Java中用于封装IP地址的类。 获取本机的InetAddress对象&#xff1a; InetAddress localHost InetAddress.getLocalHost();根据指定的主机名获取InetAddress对象&#xff08;比如说域名&#xff09; InetAddress host InetAddress.getByNa…