vue3 两个组件之间传值

Props

父组件可以通过 props 将数据传递给子组件。这是最常见的组件间通信方式

   <!-- 父组件 --><template><ChildComponent :message="parentMessage" /></template><script>import ChildComponent from './ChildComponent.vue';export default {components: {ChildComponent,},data() {return {parentMessage: 'Hello from Parent',};},};</script>
   <!-- 子组件 --><template><div>{{ message }}</div></template><script>export default {props: {message: String,},};</script>

自定义事件 (Emit) 

子组件可以通过 $emit 触发事件将数据传递回父组件。

   <!-- 子组件 --><template><button @click="sendToParent">Send to Parent</button></template><script>export default {methods: {sendToParent() {this.$emit('custom-event', 'Hello from Child');},},};</script>
   <!-- 父组件 --><template><ChildComponent @custom-event="handleEvent" /></template><script>import ChildComponent from './ChildComponent.vue';export default {components: {ChildComponent,},methods: {handleEvent(message) {console.log(message);},},};</script>

Vuex 

Vuex 是 Vue 的状态管理库,可以用来在多个组件间共享状态。

Provide / Inject 

这是一种从祖先组件注入数据到后代组件的方式,而无需逐层传递 props。

Ref 和 Reactive 

使用 Composition API,可以利用 refs 和 reactive 数据来实现组件间的通信。

Event Bus

 虽然在 Vue 3 中,官方推荐使用 Composition API 和其它更现代的通信方式,但在某些情况下,你可能仍然会使用 Event Bus(事件总线)。这通常涉及到创建一个全局事件中心,组件可以通过它发送和接收事件。

   // src/eventBus.jsimport { onMounted, onBeforeUnmount } from 'vue';import mitt from 'mitt';const eventBus = mitt();export default eventBus;
   <!-- 发送方组件 --><script>import eventBus from '@/eventBus';export default {onMounted() {eventBus.on('someEvent', payload => {console.log(payload);});},onBeforeUnmount() {eventBus.off('someEvent');},methods: {triggerEvent() {eventBus.emit('someEvent', 'Hello from Sender');},},};</script>

选择哪种方式取决于你的具体需求和组件层次结构。对于简单的父子组件关系,使用 Props 和自定义事件通常就足够了。对于更复杂的场景,如非父子组件之间的通信,Vuex 或者 Event Bus 可能会更加合适。

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

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

相关文章

Linux-shell编程入门基础

文章目录 前言Shell编程bash特性shell作用域变量环境变量$特殊变量$特殊状态变量 $特殊符号(很重要)其他内置shell命令shell语法的子串截取统计 指令执行时间练习shell特殊扩展变量父子shell的理解内置和外置命令区别 数值计算双括号(())运算letexprexpr模式匹配 bcawk中括号 s…

MySQL InnoDB事务隔离的几种级别

MySQL InnoDB是一种支持事务的存储引擎&#xff0c;提供了多种事务隔离级别&#xff0c;分别是&#xff1a;读未提交&#xff08;READ UNCOMMITTED&#xff09;&#xff0c;读已提交&#xff08;READ COMMITTED&#xff09;&#xff0c;可重复读&#xff08;REPEATABLE READ&am…

数据结构(Java):Stack相关OJ习题

1、括号匹配问题 . - 力扣&#xff08;LeetCode&#xff09; 1.1 思路分析 根据栈的先进后出原则&#xff0c;我们可以这样解决问题&#xff1a; 遍历字符串&#xff0c;遇见左括号就将左括号push入栈&#xff1b;遇见右括号就pop出栈&#xff0c;将出栈的元素和该右括号比较…

最简单的vue3组件之间传值

localStorage 是 HTML5 引入的一个 Web Storage API 的一部分&#xff0c;它允许网页在用户的浏览器上存储数据。localStorage 提供了一种持久化的本地存储方案&#xff0c;数据不会因为浏览器关闭而丢失&#xff0c;除非用户或脚本显式地删除它们。 localStorage 是一种非常实…

批量提取网页表格内容至excel文件

问题背景 将网页的表格内容&#xff08;5237个股票信息&#xff09;复制粘贴到excel文件中 网址&#xff1a;A股上市公司名单-A股上市公司名录-A股上市公司大全-商业计划书-可研报告-中商产业研究院数据库-中商情报网 实现代码 # 导入包 import pandas as pd import time# 创…

Android中为什么不直接activity调用到view,使用viewrootimpl去与底层沟通,而要追加一个phonewindow来管理呢?

在Android的架构设计中&#xff0c;Activity、PhoneWindow 和 ViewRootImpl 各自扮演着不同的角色&#xff0c;它们之间的协作是为了实现一个更加灵活、可扩展和易于管理的UI系统。不直接从Activity调用到View&#xff0c;而是引入PhoneWindow来管理&#xff0c;主要有以下几个…

超越传统:3D生物打印如何利用扩散创造奇迹?

超越传统&#xff1a;3D生物打印如何利用扩散创造奇迹&#xff1f; 组织工程和再生医学领域迫切需要能够模拟人体组织结构和功能的体外模型和组织替代物。然而&#xff0c;传统的体外模型和组织替代物往往难以满足高度特异性、复杂性和功能性的要求。3D生物打印技术应运而生&a…

Base64文件流查看下载PDF方法-CSDN

问题描述 数票通等接口返回的PDF类型发票是以Base64文件流的方式返回的&#xff0c;无法直接查看预览PDF发票&#xff0c; 处理方法 使用第三方在线工具&#xff1a;https://www.jyshare.com/front-end/61/ 在Html代码框中粘贴如下代码 <embed type"application/pd…

技术开发分享:商品详情APP原数据实时接口代码解析

商品详情app端原数据实时接口代码解析主要包括以下几个步骤&#xff1a; 获取商品ID&#xff1a;首先需要从淘宝的分享链接中提取商品ID&#xff0c;可以通过正则表达式匹配的方式获取。 构建请求URL&#xff1a;根据商品ID构建请求URL&#xff0c;通常包括淘宝的商品详情API地…

未来互联网的新篇章:深度解析Web3技术

随着技术的不断演进&#xff0c;Web3正逐渐成为引领未来互联网发展的关键驱动力。本文将深入探讨Web3技术的核心概念、关键特征以及其对未来互联网生态的深远影响&#xff0c;旨在帮助读者全面理解和把握这一新兴技术的发展方向和潜力。 1. Web3的基本概念和演进 Web3并非简单…

为什么键盘上F和J这两个键有两个凸起的横线呢?

不知道小伙伴们有没有注意过&#xff0c;我们常用的电脑键盘上&#xff0c;为什么F和J这两个键总是有两个凸起的横线的呢&#xff1f; 首先&#xff0c;让我们来回顾一下这位陪伴我们多年的老朋友——键盘。从最初的打字机到现在的机械键盘、薄膜键盘&#xff0c;键盘的形态和…

新书速览|Vue.js 3.x+Express全栈开发:从0到1打造商城项目

《Vue.js 3.xExpress全栈开发&#xff1a;从0到1打造商城项目》 1 本书内容 《Vue.js 3.xExpress全栈开发 : 从0到1打造商城项目》是一本详尽的全栈开发教程&#xff0c;旨在通过Vue.js和Express框架引导读者从零开始构建一个完整的电商项目。内容覆盖电商项目的基本结构&…

C++——map和set类用法指南

一、前言 1.1 关联式容器 关联式容器也是用来存储数据的&#xff0c;与序列式容器不同的是&#xff0c;其里面存储的是<key,value>结构的键值对&#xff0c;在数据检索时比序列式容器效率更高。 1.2 键值对 用来表示具有一一对应关系的一种结构&#xff0c;该结构中一般…

编程入门题:画矩形(C语言版)

1.题目描述&#xff1a; 根据输入的四个参数:a,b,c,f参数&#xff0c;画出对应的矩形。前两个参数 a,b为整数&#xff0c;依次代表矩形的高和宽:第三个参数c是一个字符&#xff0c;表示用来填充的矩形符号第四个参数 f为整数&#xff0c;0 代表空心&#xff0c;否则代表实心。具…

Redis如何高效实现定时任务

写在文章开头 redis通过单线程结合非阻塞事件轮询机制实现高效的网络IO和时间事件处理&#xff0c;这篇文章我们将从源码的角度深入分析一下redis时间事件的设计与实现。 Hi&#xff0c;我是 sharkChili &#xff0c;是个不断在硬核技术上作死的 java coder &#xff0c;是 CS…

项目三层架构详情

三层架构 三层架构就是为了符合“高内聚&#xff0c;低耦合”思想&#xff0c;把各个功能模块划分为表示层&#xff08;UI&#xff09;、业务逻辑层&#xff08;BLL&#xff09;和数据访问层&#xff08;DAL&#xff09;三层架构&#xff0c;各层之间采用接口相互访问&#xf…

(正向)代理 vs. 反向代理

&#xff08;正向&#xff09;代理 vs. 反向代理 代理和反向代理都是针对用户而言的。 一、&#xff08;正向&#xff09;代理——代理客户端 1. 流程 代理会隐藏客户端的真实信息&#xff08;IP、端口&#xff09;&#xff0c;代替客户端在互联网上发起请求&#xff0c;并将…

09:C语言进阶篇一

C语言进阶篇一 数据类型1.1、内存占用与sizeof运算符1.2、有符号数和无符号数1.3、整形数和浮点型数存储方式1.4、数据类型转换1.4.1、隐式转换1.4.2、强制转换 数据类型 基本数据类型&#xff1a;char&#xff0c;short&#xff0c;int&#xff0c;long&#xff0c;float&…

什么是RLHF(基于人类反馈的强化学习)?

什么是RLHF&#xff08;基于人类反馈的强化学习&#xff09;&#xff1f; 基于人类反馈的强化学习&#xff08;Reinforcement Learning from Human Feedback, RLHF&#xff09;是一种结合强化学习和人类反馈的技术&#xff0c;用于训练智能体&#xff0c;使其行为更符合人类期…

哪些类型的工作需要六西格玛绿带培训?

一、六西格玛绿带是什么&#xff1f; 首先&#xff0c;让我们来了解一下六西格玛绿带。六西格玛绿带是六西格玛管理体系中的一个重要角色&#xff0c;他们通常负责在项目中执行六西格玛方法和工具&#xff0c;协助黑带完成复杂的项目任务。绿带需要掌握基本的六西格玛知识和技…