首页 > 其他分享 >Vue.js组件开发-使用EventBus实现组件间高效通信

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

时间:2025-01-11 12:29:07浏览次数:3  
标签:Vue component Component js 组件 EventBus message

在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>
        // 创建一个EventBus
        const EventBus = new Vue();

        // 定义ComponentA
        Vue.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!');
                }
            }
        });

        // 定义ComponentB
        Vue.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接收到的消息。

标签:Vue,component,Component,js,组件,EventBus,message
From: https://blog.csdn.net/michael_jovi/article/details/145075499

相关文章

  • node.js毕设高校后勤管理系统论文+程序
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于高校后勤管理系统的研究,现有研究主要以单一功能模块为主,如有的侧重于宿舍管理,有的侧重于饭卡管理等,专门针对包含学生、系统公告、寝室信息、寝室安......
  • node.js毕设高校机房管理系统论文+程序
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于高校机房管理系统的研究,现有研究主要以高校信息化建设的一般性问题为主,专门针对高校机房管理系统的综合性研究较少。在国内外,机房管理的相关研究多......
  • Three.js 实现光线行 Shader
    大家好!我是[数擎AI],一位热爱探索新技术的前端开发者,在这里分享前端和Web3D、AI技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步!开发领域:前端开发|AI应用|Web3D|元宇宙技术栈:JavaScript、React、ThreeJs、WebGL、Go经验经验:6年+......
  • 果蔬经营平台|基于SSM+vue的果蔬经营平台系统的设计与实现(源码+数据库+文档)
    果蔬经营平台系统目录基于SSM+vue的果蔬经营平台系统的设计与实现一、前言二、系统设计三、系统功能设计 1系统功能模块2管理员功能模块四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博主介绍:✌️大厂码农|毕设布道师,阿里......
  • 产品售后|基于SprinBoot+vue的产品售后管理​​​​​​​系统(源码+数据库+文档)
    产品售后管理系统目录基于SprinBoot+vue的产品售后管理系统一、前言二、系统设计三、系统功能设计 管理员模块实现客户模块实现受理人员模块实现工程师模块实现厂商模块实现四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获......
  • 协同过滤算法绿色食品推荐系统|Java|SSM|VUE| 
                 【技术栈】1⃣️:架构:B/S、MVC2⃣️:系统环境:Windowsh/Mac3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7+4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html5⃣️数据库可视化工具:navicat6⃣️服务器:SpringBoot自带apachetomca......
  • Java项目:衣依服装销售平台(java+SpringBoot+Mybaits+Vue+elementui+mysql)
     源码获取:俺的博客首页"资源"里下载!项目介绍基于springboot的“衣依”服装销售平台的设计与实现环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.硬件环境:windows7/8/101G......
  • 基于SpringBoot + Vue的养老院管理系统
    文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言......
  • 用Tauri2.0把Vite+Vue3项目打包成exe桌面程序
    前言最近有个需求是做一两个设备的配置页面,但需要在断网的笔记本上直接运行(笔记本用网线直连设备)。避免测试同事配置开发环境麻烦,想到了把这些前端配置页面打包成一个exe的安装包。到时候测试同事只需要双击运行安装,打开后就可以直接运行,比较方便。有这个打包需求后,首先想到的......
  • JSP客运列车物资定额及领用管理系统29k2w--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景随着铁路客运事业的快速发展,客运列车的数量和规模不断增加,传统的物资管理方式已经无法满足现代需求。为了提高物资管理的效率和准确性......