【Vue】非父子通信-event bus 事件总线

文章目录

  • 一、实现步骤
  • 二、代码示例

作用:非父子组件之间,进行简易消息传递。(复杂场景→ Vuex)

一、实现步骤

  1. 创建一个都能访问的事件总线 (空Vue实例) → utils/EventBus.js

    叫事件总线的原因是因为本质是它俩消息的接受和发送是利用了Vue的事件机制

    import Vue from 'vue'
    const Bus = new Vue()
    export default Bus
    
  2. A组件(接受方),监听Bus的 $on事件

    created () {// B组件通过触发事件传递了参数(发布消息),进而在A组件由于监听了这个消息,进而就会执行回调Bus.$on('sendMsg', (msg) => {this.msg = msg})
    }
    
  3. B组件(发送方),触发Bus的$emit事件

    Bus.$emit('sendMsg', '这是一个消息')
    

    68232839240


二、代码示例

EventBus.js

import Vue from 'vue'
const Bus = new Vue()
export default Bus

BaseA.vue(接受方)

<template><div class="base-a">我是A组件(接受方)<p>{{msg}}</p>  </div>
</template><script>
import Bus from '../utils/EventBus'
export default {data() {return {msg: '',}},created() {Bus.$on('sendMsg', (msg) => {// console.log(msg)this.msg = msg})},
}
</script><style scoped>
.base-a {width: 200px;height: 200px;border: 3px solid #000;border-radius: 3px;margin: 10px;
}
</style>

BaseB.vue(发送方)

<template><div class="base-b"><div>我是B组件(发布方)</div><button @click="sendMsgFn">发送消息</button></div>
</template><script>
import Bus from '../utils/EventBus'
export default {methods: {sendMsgFn() {Bus.$emit('sendMsg', '今天天气不错,适合旅游')},},
}
</script><style scoped>
.base-b {width: 200px;height: 200px;border: 3px solid #000;border-radius: 3px;margin: 10px;
}
</style>

BaseC.vue(接收方)

<template><div class="base-c">我是C组件(接受方)<p>{{msg}}</p>  </div>
</template><script>
import Bus from '../utils/EventBus'
export default {data() {return {msg: '',}},created() {Bus.$on('sendMsg', (msg) => {// console.log(msg)this.msg = msg})},
}
</script><style scoped>
.base-c {width: 200px;height: 200px;border: 3px solid #000;border-radius: 3px;margin: 10px;
}
</style>

App.vue

<template><div class="app"><BaseA></BaseA><BaseB></BaseB><BaseC></BaseC></div>
</template><script>
import BaseA from './components/BaseA.vue'
import BaseB from './components/BaseB.vue'
import BaseC from './components/BaseC.vue'
export default {components:{BaseA,BaseB,BaseC}
}
</script><style></style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/22657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go 语言中的数组:声明、初始化与应用

Go 语言的数据结构中&#xff0c;数组是一个基本的构成元素&#xff0c;它能存储一系列固定长度的项&#xff0c;这些项具有相同的类型。尽管在 Go 中切片的使用更为普遍&#xff0c;数组仍然是理解更高级数据结构如切片和map的基础。本文将详细探讨 Go 语言中数组的声明、初始…

JL-03-Y1 清易易站

产品概述 清易易站是清易电子新研发的一体式气象站&#xff0c;坚持科学化和人文化相结合的设计理念&#xff0c;应用新检测原理研发的传感器观测各类气象参数&#xff0c;采用社会上时尚的工艺理念设计气象站的整体结构&#xff0c;实现了快速观测、无线传输、数据准确、精度较…

NCP1680AAD1R2G是一款CrM PFC控制器IC 用于驱动无桥图腾柱PFC拓扑结构

NCP1680AAD1R2G NCP1680是一个CrM PFC控制器IC&#xff0c;用于驱动无桥图腾柱PFC拓扑结构。无桥图腾柱PFC是一种功率因数校正结构&#xff0c;包括一个以PWM开关频率驱动的快速开关桥臂和一个以AC线频率工作的第二桥臂。这种拓扑结构消除了传统PFC电路输入端存在的二极管桥&am…

LabVIEW冲击响应谱分析系统

LabVIEW冲击响应谱分析系统 开发了一种基于LabVIEW开发的冲击响应谱分析系统&#xff0c;该系统主要用于分析在短时间内高量级输入力作用下装备的响应。通过改进的递归数字滤波法和样条函数法进行冲击响应谱的计算&#xff0c;实现了冲击有效持续时间的自动提取和响应谱的精准…

操作简单中医电子处方中药划价系统软件视频教程,佳易王诊所电子处方管理系统软件

操作简单中医电子处方中药划价系统软件视频教程&#xff0c;佳易王诊所电子处方管理系统软件 一、前言 以下软件操作教程以&#xff0c;佳易王中西医诊所电子处方软件为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、软件支持中医和西医处方…

深入探索npx:npm包执行的艺术与npm的实用差异

引言 在使用Node.js和JavaScript的生态系统中&#xff0c;npx和npm是两个常用的命令行工具&#xff0c;它们各自有着独特的用途和优势。 基础知识 npm&#xff08;Node Package Manager&#xff09;&#xff1a;是一个包管理器&#xff0c;用于管理项目中的依赖。npx&#x…

Linux `free` 命令:深入解析系统内存使用情况**

Linux free 命令&#xff1a;深入解析系统内存使用情况 在Linux系统管理中&#xff0c;了解内存的使用情况对于系统调优、性能监控以及故障排除都至关重要。free 命令是Linux系统中用于显示系统内存使用情况的常用工具。本文将深入解析 free 命令的使用方法和其输出的各项含义…

冯喜运:6.5今日黄金原油行情怎么看及日内操作策略

【黄金消息面分析】&#xff1a;周三&#xff08;6月5日&#xff09;亚市早盘&#xff0c;现货黄金窄幅震荡&#xff0c;目前交投于2328.13美元/盎司附近。黄金价格周二下跌超过1%&#xff0c;原因是美元在本周晚些时候美国就业数据公布前趋于稳定&#xff0c;该数据可能为美联…

女生适合学GIS开发吗?0基础怎么学?

最近小编在各账号后台会陆续收到一些粉丝留言。其中有些女粉在问&#xff0c;女生适合学GIS开发吗&#xff1f;会被歧视吗&#xff1f; 众所周知&#xff0c;IT行业中男生占了很大部分的比例&#xff0c;那么GIS开发行业也是这样吗&#xff0c;女生适合学习GIS开发吗&#xff…

SwiftUI 利用 Swizz 黑魔法为系统创建的默认对象插入新协议方法(五)

功能需求 在 SwiftUI 的开发中,我们往往需要借助底层 UIKit 的“上帝之手”来进一步实现额外的定制功能。比如,在可拖放(Dragable)SwiftUI 的实现中,会缺失拖放取消的回调方法让我们这些秃头码农们“欲哭无泪” 如上图所示,我们在拖放取消时将界面中的一切改变都恢复如初…

【前端 - Vue】Vuex基础入门,创建仓库的详细步骤

&#x1f680; 个人简介&#xff1a;6年开发经验&#xff0c;现任职某国企前端负责人&#xff0c;分享前端相关技术与工作常见问题~ &#x1f49f; 作 者&#xff1a;前端菜鸟的自我修养❣️ &#x1f4dd; 专 栏&#xff1a;vue从基础到起飞 &#x1f308; 若有帮助&…

有极性电容器的引脚极性怎么判别?

由于有极性电容器有正、负之分&#xff0c;在电路中又不能乱接&#xff0c;所以在使用有极性电容器前需要先判别出正、负极。有极性电容器的正、负极判别方法如图2—9&#xff5e;图2—11所示。 方法一&#xff1a;对于未使用过的新电容&#xff0c;可以根据引脚长短来判别。引…

Java代码优化指南

Java代码优化指南 代码优化是通过改进算法和数据结构&#xff0c;使代码运行得更快、更节省内存、更易于维护。在这方面&#xff0c;主要可以从算法优化、数据结构优化和代码层面的优化入手。本文将详细介绍这些优化方法&#xff0c;并通过具体示例说明如何在Java中进行代码优…

企业微信SOP工具:提升企业管理与运营效率的新选择

在当今这个数字化、智能化的时代&#xff0c;企业对于高效、精准的管理与运营需求日益迫切。企业微信作为一款功能强大的企业级通讯工具&#xff0c;已经深入到众多企业的日常运营中。而企业微信SOP工具&#xff08;Standard Operating Procedure&#xff0c;即标准操作流程工具…

delphi清理程序占用的内存,真的有效果.

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; //DELPHI清理释放内存小代码 procedure ClearMemory; begin {内存清理} if Win32Platform VER_PLATFORM_WIN32_NT then begin SetProcessWorkingSetSize(GetCurrentPro…

vue改造四级树状可输入table

vue改造四级树状可输入table <template><div class"dimension_wary"><div class"itemHeader"><div class"target"></div><div class"sort">X2</div><div class"weight">…

人眼是如何选择成像的

其实&#xff0c;我在前面的一篇文章中利用数学模型&#xff0c;没有具体计算过&#xff0c;讨论了该如何成像&#xff0c;但是这毕竟只是数学上的计算方式&#xff0c;跟人脑的处理方式不是一样的。我现在提出一个跟比较接近哲学的问题&#xff0c;首先人脑在不清楚什么清晰&a…

基于最大重叠离散小波变换的PPG信号降噪(MATLAB 2018)

光电容积脉搏波PPG信号结合相关算法可以用于人体生理参数检测&#xff0c;如血压、血氧饱和度等&#xff0c;但采集过程中极易受到噪声干扰&#xff0c;对于血压、血氧饱和度测量的准确性造成影响。随着当今社会医疗保健技术的发展&#xff0c;可穿戴监测设备对于PPG信号的质量…

卷积学习笔记

上下采样&#xff1a; 上采样&#xff08;Upsampling&#xff09;和下采样&#xff08;Downsampling&#xff09;是图像处理和信号处理中常用的两种技术&#xff0c;它们分别用于增加或减少数据的分辨率或采样率。 下采样&#xff08;Downsampling&#xff09; 定义&#xf…

【Kubernetes】k8s集群的污点、容忍、驱逐 以及排障思路

污点和容忍以及驱逐 一、污点&#xff08;Taint&#xff09; 污点介绍 节点亲和性&#xff0c;是Pod的一种属性&#xff08;偏好或硬性要求&#xff09;&#xff0c;它使Pod被吸引到一类特定的节点。Taint 则相反&#xff0c;它使节点能够排斥一类特定的 Pod。 Taint 和 Tol…