vue 中互相不关联的两个组件怎么进行通信(数据传输)

1、Vuex
Vuex 是 Vue 官方的状态管理模式与库。通过使用 Vuex,可以将组件间共享的数据存储在一个全局的状态树中,任何组件都可以读取这个状态,通过提交 mutations 或 dispatch actions 来修改状态。

2、Event Bus (事件总线)
创建一个全局的 Vue 实例作为事件总线(Event Bus),用来触发和监听事件。组件 A 可以通过 $bus.$emit 触发事件,组件 B 则可以通过 $bus.$on 来监听这些事件,从而实现数据的传递。

1、在src/assets/js文件中新建eventBus.js内容如下:
import Vue from 'vue';
const EventBus = new Vue();
export default EventBus;2、在点击navbarPv组件的功能时把默认选中样式定位到第一个模块下的第一个功能菜单上
a、在navbar组件中引入eventBus.js文件
import EventBus from '@/assets/js/eventBus'b、实现点击监听<ul class="headMenu"><li><i class="menuIcon"></i><h4 class="fonts" @click="goDomain">功能</h4></li><li>用户</li>
</ul>goDomain() {// this.$router.push({path: "/mon_powerstation"});//通过事件总线触发名为 handleSelected 的事件,并传递参数 '2-1'。作用是通知其他监听此事件的组件(leftBar.vue)或对象进行相应处理。EventBus.$emit('handleSelected', '2-1');window.location = '#/mon_powerstation'
},3、在leftBarPv.vue组件中引入eventBus.js文件
<el-menu class="leftbarPv" :unique-opened="true" :default-active="active" :collapse="isCollapse" @select="handleSelect"></el-menu>import EventBus from '@/assets/js/eventBus'
created() {//监听 EventBus 上名为 handleSelected 的事件。
//当该事件被触发,并携带参数 menuId 时,会调用当前组件实例中的 handleSelect 方法,并将 menuId //作为参数传递给该方法。EventBus.$on('handleSelected', (menuId) => {this.handleSelect(menuId);});
}beforeDestroy() {//在组件销毁前取消监听'handleSelected'事件。具体功能如下://确保组件销毁时,解除对该事件的绑定,避免内存泄漏。//使用EventBus作为事件总线,实现组件间通信。EventBus.$off('handleSelected');},

3、Props + 自定义事件
如果两个组件有一个共同的父组件,可以通过父组件作为中介,使用 props 向下传递数据,然后使用自定义事件 $emit 从子组件向上传递数据。

4、使用全局对象或混入
可以创建一个全局可访问的对象或者使用 Vue 混入(mixin)来存储共享数据,但这不是推荐的做法,因为它可能会导致状态管理变得难以追踪。

5、Web Storage 通信
使用 HTML5 Web Storage 事件(storage event)来监听其他窗口或标签页中的 localStorage 变更,这在多窗口或多标签页的应用中特别有用。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

使用Lantern和LangChain构建RAG应用:一步步指南

使用Lantern和LangChain构建RAG应用&#xff1a;一步步指南 在本文中&#xff0c;我们将介绍如何使用Lantern和LangChain创建一个高效的RAG&#xff08;检索增强生成&#xff09;应用。我们将详细讲解环境设置&#xff0c;数据库配置&#xff0c;代码实现&#xff0c;以及如何…

表盘针头位置检测系统源码分享

表盘针头位置检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

【软设】 系统开发基础

【软设】 系统开发基础 一.软件工程概述 &#xff08;了解一下大概的流程就行&#xff09; 1. 可行性分析与项目开发计划 目的&#xff1a;评估项目的经济性、技术性和运营性&#xff0c;判断项目是否值得投资和开发。确定开发时间、预算、所需资源等。 可行性分析&#xff…

Spring Boot框架在心理教育辅导系统中的应用案例

目 录 摘 要 I ABSTRACT II 1绪 论 1 1.1研究背景 1 1.2设计原则 1 1.3论文的组织结构 2 2 相关技术简介 3 2.1Java技术 3 2.2B/S结构 3 2.3MYSQL数据库 4 2.4Springboot框架 4 3 系统分析 6 3.1可行性分析 6 3.1.1技术可行性 6 3.1.2操作可行性 6 3.1.3经济可行性 6 3.1.4法律…

Transformer模型-7- Decoder

概述 Decoder也是N6层堆叠的结构&#xff0c;每层被分3层: 两个注意力层和前馈网络层&#xff0c;同Encoder一样在主层后都加有Add&Norm&#xff0c;负责残差连接和归一化操作。 Encoder与Decoder有三大主要的不同&#xff1a; 第一层 Masked Multi-Head Attention: 采用…

XXL-JOB 漏洞大全

一、前言 在当今的数字化时代&#xff0c;任务调度平台对于企业级应用来说至关重要。它们负责自动化和协调各种时间敏感或周期性的任务&#xff0c;确保业务流程的顺畅运行。XXL-JOB作为一款流行的分布式任务调度平台&#xff0c;因其强大的功能和易用性&#xff0c;被广泛部署…

MySQL篇(存储引擎)(持续更新迭代)

目录 一、简介 二、使用存储引擎 1. 建表时指定存储引擎 2. 查询当前数据库支持的存储引擎 三、三种常见存储引擎 1. InnoDB存储引擎 1.1. 简介 1.2. 特点 1.3. 文件格式 1.4. 逻辑存储结构 表空间 段 区 页 行 2. MyISAM存储引擎 2.1. 简介 2.2. 特点 2.3. …

Unity3D入门(二) :Unity3D实现视角的丝滑过渡切换

1. 前言 上篇文章&#xff0c;我们已经初步了解了Unity3D&#xff0c;并新建并运行起来了一个项目&#xff0c;使相机视角自动围绕着立方体旋转。 这篇文章&#xff0c;我们来讲一下Unity3D怎么过渡地切换视角。 我们继续是我上篇文章中的项目&#xff0c;但是需要向把Camera…

2024最新最全:网络安全人士【必备的30个安全工具】

1.Wireshark Wireshark&#xff08;前称Ethereal&#xff09;是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包&#xff0c;并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口&#xff0c;直接与网卡进行数据报文交换。 2.Metasploit Meta…

学习笔记——Swin Transformer(ICCV 2021 best paper)

有关ViT的学习笔记详见&#xff1a;学习笔记——ViT(Vision Transformer)-CSDN博客 ViT在图像分类方面的结果令人鼓舞&#xff0c;但由于其低分辨率的特征映射和复杂度随图像大小的二次方增长&#xff0c;其架构不适合作为密集视觉任务或高分辨率输入图像的backbone。根据经验&…

如何模拟异常情况进行接口测试自动化?

接口测试是软件测试中的重要环节&#xff0c;尤其是在分布式系统和微服务架构中&#xff0c;接口的稳定性和正确性直接影响系统的整体性能。在实际应用中&#xff0c;除了要验证接口的功能性&#xff0c;还需要测试接口在各种异常情况下的表现&#xff0c;如网络异常、超时、接…

华为地图服务 - 如何在地图指定位置增加气泡?-- HarmonyOS自学19

场景介绍 本章节将向您介绍如何在地图的指定位置添加气泡。 您可以通过气泡在道路上指定位置显示测速、拥堵情况。气泡支持功能&#xff1a; 支持设置四个方向的图标&#xff08;传入的图标宽高需要相同&#xff09;。支持设置图标碰撞规则。支持设置当前气泡的候选坐标段&a…

二叉搜索树(附源码C++)

游凡/搜索二叉树https://gitee.com/you-fan-a/search-binary-tree 一、什么是二叉搜索树&#xff1f; 若它的左子树不空&#xff0c;则左子树上所有结点的值均小于它根结点的值。若它的右子树不空&#xff0c;则右子树上所有结点的值均大于它根结点的值。它的左、右树又分为⼆…

Linux移植之系统烧写

直接参考【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.81 本文仅作为个人笔记使用&#xff0c;方便进一步记录自己的实践总结。 前面我们已经移植好了 uboot 和 linux kernle&#xff0c;制作好了根文件系统。但是我们移植都是通过网络来测试的&#xff0c;在实际的产品开发中…

Autosar Dcm开发-诊断2E或31服务实现pending功能

文章目录 前言Dcm规范功能实现总结前言 项目开发过程中,有需求在31服务(Routine)收到请求时,等待应用层反馈执行完后再进行响应。所以pending一段时间,本文介绍该功能的实现。 Dcm规范 以Routine为例,其服务包含以下返回状态 0:E_OK,服务成功执行 1:E_NOT_OK,服务…

【PythonCode】力扣Leetcode46~50题Python版

【PythonCode】力扣Leetcode46~50题Python版 前言 力扣Leetcode是一个集学习、刷题、竞赛等功能于一体的编程学习平台&#xff0c;很多计算机相关专业的学生、编程自学者、IT从业者在上面学习和刷题。 在Leetcode上刷题&#xff0c;可以选择各种主流的编程语言&#xff0c;如C…

数据仓库建模方法论 :维度模型

使用ER模式建立的数仓&#xff0c;优点是没有冗余的数据。缺点是&#xff1a;数仓是用于分析的&#xff0c;分析的数据量特别大&#xff0c;多个表需要join操作&#xff0c;运行的时候特别慢。 比如&#xff1a;统计哪一年&#xff0c;哪个国家的哪个品类卖的最好&#xff1f;…

如何实现一个流畅的滚动列表

如何实现一个流畅的滚动列表 在网页开发中&#xff0c;滚动列表是展示大量数据时常用的交互方式。通过结合CSS动画和视觉设计&#xff0c;我们可以让列表内容自动滚动&#xff0c;为用户提供顺畅的浏览体验。今天&#xff0c;我将带你一步步实现一个流畅、富有视觉吸引力的滚动…

地平线占用预测 FlashOcc 参考算法-V1.0

1.简介 3D Occupancy Networks 的基本思路是将三维空间划分成体素网格&#xff0c;并对每个网格进行各类感知任务的预测。目前以网格为中心的方法能够预测每个网格单元的占用率、语义类别、未来运动位移和实例信息。3D occupancy 可以对道路障碍物进行更细粒度的划分&#xff…

如何利用nw.js打包vue项目

引言 最近有一个开发windows桌面应用的需求, 需要将vue项目打包成.exe文件&#xff0c;最好是变成可安装版(非绿色版)。特此记录一下如何通过nw.js将vue项目打包成.exe。可能这种方式不是最优&#xff0c;仅供大家参考&#xff01; nw.js简介&#xff08;以下描述来自nw.js官…