【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,一经查实,立即删除!

相关文章

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、软件支持中医和西医处方…

冯喜运: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;可以根据引脚长短来判别。引…

vue改造四级树状可输入table

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

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

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

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

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

Word忘记保存?请使用Word隐藏备份文件

大家用Word写材料时&#xff0c;如果忘记保存&#xff0c;可以使用Word隐藏备份文件找回未保存的文件。&#xff08;仅供参考&#xff09; Windows7、8、10、11系统的设置如下&#xff1a; 执行上述操作&#xff0c;可以在word文件菜单中信息项的自动保存中找到了。上述内容…

Java中的接口与抽象类:区别与联系

Java中的接口与抽象类&#xff1a;区别与联系 在Java中&#xff0c;interface&#xff08;接口&#xff09;和abstract class&#xff08;抽象类&#xff09;是两种重要的抽象类型&#xff0c;用于定义对象的抽象行为和结构。虽然Java 8之后接口引入了默认方法和静态方法&…

Mac保姆级配置jdk环境

1.找到下载的jdk环境 通常是这个。留作备用 /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/bin 然后新开一个终端下执行以下命令 sudo vim ~/.bash_profile 进入编辑模式后 按 i 开始添加内容结束编辑模式按 ESC结束后保存输入 :wq!不保存输入 :q! 注意…

理解NSCopying协议

NSCopying 协议用于让对象能够被复制。实现这个协议的类需要定义如何创建该对象的副本。这个副本是独立的&#xff0c;不会与原对象共享内存地址。 为什么需要 NSCopying 协议&#xff1f; 当你需要复制对象时&#xff0c;例如将对象存储到一个集合&#xff08;如数组、字典&…

06.docker容器管理

docker的容器管理 创建并且启动一个nginx容器 docker run -d -p 80:80 nginx:latest run&#xff08;创建并运行一个容器&#xff09; -d 放在后台 -p 端口映射 -v 源地址(宿主机):目标地址(容器)创建一个centos系统的容器&#xff0c;并且进入到系统里面 nginx docker镜…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第35课-3D互动教材

【WEB前端2024】3D智体编程&#xff1a;乔布斯3D纪念馆-第35课-3D互动教材 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎&am…

Zero Infinity原理

如上图&#xff0c;一次加载一个layer的一个weights分片&#xff08;一层的1/DP的参数量&#xff09;&#xff0c;Broadcast至所有rank&#xff0c;计算各自的梯度&#xff0c;再Reduce至其中一个负责的rank&#xff0c;offload存放至CPU Memory&#xff0c;释放GPU里的weights…

cesium Material的理解与使用

1.简介 材质Material可以是比较简单的&#xff0c;比如直接将一张图片赋予表面&#xff0c;或者使用条纹状、棋盘状的图案&#xff1b;也可以使用Fabric和GLSL&#xff0c;重新创建一个新的材质或者组合现有的材质。例如&#xff0c;我们可以通过程序生成的纹理(procedural bri…