Vue 3 中,组件间传值有多种方式
在 Vue 3 中,组件间传值有多种方式,以下是几种常见的方式
- 父组件向子组件传值(通过 props):
- 以下是几个父组件向子组件传值的示例:
- 示例 1:传递字符串
- 示例 2:传递数字
- 示例 3:传递对象
- 示例 4:传递数组
- 示例 5:传递布尔值
- 子组件向父组件传值(通过自定义事件):
- 子组件使用 v-model 向父组件传值的示例代码:
- 通过 provide 和 inject:
- 在父组件和子组件中使用:
父组件向子组件传值(通过 props):
<!-- 父组件 -->
<template><ChildComponent :message="parentMessage" />
</template><script setup>
import ChildComponent from './ChildComponent.vue';
const parentMessage = '这是来自父组件的值';
</script><!-- 子组件 -->
<template><div>{{ message }}</div>
</template><script setup>
defineProps(['message']);
</script>
以下是几个父组件向子组件传值的示例:
示例 1:传递字符串
父组件:
<template><ChildComponent :message="messageFromParent" />
</template><script setup>
import ChildComponent from './ChildComponent.vue';
const messageFromParent = '这是来自父组件的消息';
</script>
子组件:
<template><div>{{ message }}</div>
</template><script setup>
defineProps(['message']);
</script>
示例 2:传递数字
父组件:
<template><ChildComponent :count="5" />
</template><script setup>
import ChildComponent from './ChildComponent.vue';
</script>
子组件:
<template><div>接收到的数字: {{ count }}</div>
</template><script setup>
defineProps(['count']);
</script>
示例 3:传递对象
父组件:
<template><ChildComponent :userInfo="{ name: '张三', age: 25 }" />
</template><script setup>
import ChildComponent from './ChildComponent.vue';
</script>
子组件:
<template><div>用户信息: {{ userInfo.name }}, {{ userInfo.age }}</div>
</template><script setup>
defineProps(['userInfo']);
</script>
示例 4:传递数组
父组件:
<template><ChildComponent :fruits="['苹果', '香蕉', '橙子']" />
</template><script setup>
import ChildComponent from './ChildComponent.vue';
</script>
子组件:
<template><div>水果列表: <ul><li v-for="fruit in fruits" :key="fruit">{{ fruit }}</li></ul></div>
</template><script setup>
defineProps(['fruits']);
</script>
示例 5:传递布尔值
父组件:
<template><ChildComponent :isActive="true" />
</template><script setup>
import ChildComponent from './ChildComponent.vue';
</script>
子组件:
<template><div v-if="isActive">当前状态为活跃</div><div v-else>当前状态为不活跃</div>
</template><script setup>
defineProps(['isActive']);
</script>
子组件向父组件传值(通过自定义事件):
<!-- 父组件 -->
<template><ChildComponent @childEvent="handleChildEvent" />
</template><script setup>
import ChildComponent from './ChildComponent.vue';function handleChildEvent(valueFromChild) {console.log('从子组件接收到的值:', valueFromChild);
}
</script><!-- 子组件 -->
<template><button @click="emitEvent">向父组件传值</button>
</template><script setup>
defineEmits(['childEvent']);function emitEvent() {const valueToSend = '这是来自子组件的值';emit('childEvent', valueToSend);
}
</script>
子组件使用 v-model 向父组件传值的示例代码:
父组件:
html
复制
父组件接收到的值: {{ inputValue }}
子组件:
html
复制
<input type=“text” :value=“value” @input=“$emit(‘update:value’, $event.target.value)” />
在上述示例中,父组件通过 v-model:value=“inputValue” 将 inputValue 与子组件进行绑定。子组件中的输入框的值通过 :value=“value” 与父组件传来的值进行关联,当输入框的值发生变化时,通过 @input=“$emit(‘update:value’, $event.target.value)” 触发 update:value 事件并将新的值传递给父组件,从而实现子组件向父组件传值。
通过 provide 和 inject:
<!-- 父组件 -->
<template><ChildComponent />
</template><script setup>
import { provide } from 'vue';provide('sharedValue', '这是共享的值');
</script><!-- 子组件 -->
<template><div>{{ sharedValue }}</div>
</template><script setup>
import { inject } from 'vue';const sharedValue = inject('sharedValue');
</script>
使用 Vuex 状态管理:
首先安装 vuex :npm install vuex@next --save
创建一个 store.js 文件:
import { createStore } from 'vuex';export default createStore({state: {commonValue: '这是全局的值',},mutations: {updateCommonValue(state, newValue) {state.commonValue = newValue;}},actions: {},getters: {}
});
在父组件和子组件中使用:
<!-- 父组件或子组件 -->
<template><div>{{ $store.state.commonValue }}</div>
</template><script setup>
import { useStore } from 'vuex';const store = useStore();function updateValue() {store.commit('updateCommonValue', '新的值');
}
</script>
这些是 Vue 3 中常见的组件间传值方式,您可以根据具体的项目需求选择合适的方法。
相关文章:
Vue 3 中,组件间传值有多种方式
在 Vue 3 中,组件间传值有多种方式,以下是几种常见的方式 父组件向子组件传值(通过 props):以下是几个父组件向子组件传值的示例:示例 1:传递字符串示例 2:传递数字示例 3࿱…...
前置(3):npm 和npx异同点
npm(Node Package Manager)和npx(Node Package Execute)是两个密切相关但用途不同的命令行工具,它们都是Node.js生态系统中的重要组成部分。 npm 用途:npm是Node.js的包管理器,主要用于安装、…...
笔记(day17)集合概述、List、Set、比较器
集合Collection 一.概述 集合可以理解为数据结构的封装,根据不同的特性及操作性能进行分类 二.继承体系 三.Collection中常用方法 collection是集合中的父类,所以collection中的方法是所有集合中都有的 集合中只能保存引用类型(Object),无法保存基本类型 Colle…...
C语言从头学45——I/O函数(二)
本文继续学习I/O函数,并延续前文的编号。 (三)、sscanf() 函数 sscanf() 函数与scanf() 有些相似,不同之处sscanf() 是从已有的字符串里面获取数据;这个函数也是定义在stdio.h中。 功能:处理已经输入到计算机中的字…...
Python爬虫——爬取bilibili中的视频
爬取bilibili中的视频 本次爬取,还是运用的是requests方法 首先进入bilibili官网中,选取你想要爬取的视频,进入视频播放页面,按F12,将网络中的名称栏向上拉找到第一个并点击,可以在标头中,找到…...
为什么企业电销要用外呼系统
电销要使用外呼系统的原因主要有以下几点: 一、提升工作效率 * **自动拨号**:外呼系统能够自动拨打客户电话,减少电销人员手动拨号的时间,让他们将更多精力集中在与客户的沟通和交流上。 * **数据记录与管理**:系统能…...
Keepalived + Nginx 主备容灾方案介绍
Keepalived Nginx 主备容灾方案介绍 *服务器**IP地址**角色*Srv01192.168.249.100 VIP: 192.168.249.110NginxKeepaliveSrv02192.168.249.101NginxKeepalive 概述 Keepalived 和 Nginx 的组合是一个常见的高可用性(HA)方案,尤其适用于 Web…...
PHP、JavaScript代码审计工具
软件截图 1. GPT代码审计需要挂代理,和充值才可以使用 2. 全局搜索关键字 3. 危险函数搜索 4. 自动化代码审计 报告 下载地址 GitHub - yuag/Code-audit: 代码审计代码审计. Contribute to yuag/Code-audit development by creating an account on GitHub....
《向量数据库指南》——Ray Data+Anyscale解锁价值评估新篇章
在钧瓷这一古老而深邃的艺术领域中,每一位资深藏家与投资人都深知,随着市场的不断发展与扩大,信息的处理与分析能力对于精准判断、高效收藏与投资决策至关重要。尤其是当我们面对庞大的钧瓷数据库、复杂的交易记录、以及不断更新的市场趋势时,传统的数据处理方式往往显得力…...
知识改变命运 数据结构【杨辉三角(顺序表)】
杨辉三角 首先我们可以发现题目中返回类型是一个 这其实返回的类似与一个二维数组 我们大概分析下题目根据画图可知,我们可以把每一行的元素进行存储,然后再把每一行存储起来,然后就实现了题目 代码: public List<List<…...
Docker三剑客之Docker Engine
Docker Engine作为Docker的核心组件,其功能和重要性不言而喻。以下是对Docker Engine的详细介绍,内容涵盖其定义、核心组件、工作原理、配置方法、安全性以及最佳实践等多个方面,但由于篇幅限制,我将尽量在6000字以内概括性地介绍…...
【Qt】信号与槽(下)
目录 自定义信号 带参数的信号和槽 信号和槽存在的意义 信号与槽的连接方式 一对一 一对多 多对一 意义 信号和槽的其他说明 信号和槽的断开 使用Lambda表达式定义槽函数 信号与槽的优缺点 优点: 松散耦合 缺点: 效率较低 自定义信号 自定义槽函数是非常关键的&a…...
多模态大语言模型(MMLLM)的现状、发展和潜力
1、大模型 随着ChatGPT流行,大模型技术正逐渐成为AI领域的热点。许多行业大佬纷纷投身于这一赛道,展示了大模型的独特魅力和广阔前景。 王慧文,前美团联合创始人,发起“AI英雄帖”。 李志飞,出门问问创始人࿰…...
Linux中apache服务安装与mysql安装
目录 一、apache安装 二、MySQL安装 一、apache安装 准备环境:一台虚拟机、三个安装包(apr-1.6.2.tar.gz、apr-util-1.6.0.tar.gz、httpd-2.4.29.tar.bz2) 安装过程: tar xf apr-1.6.2.tar.gz tar xf apr-util-1.6.0.tar.gz tar xf http…...
Sublime Text常用快捷键
1. 简介 1.1. 概述 Sublime Text是一个轻量级的文本编辑器,它具有快速的启动速度、易用性以及美观的界面。它支持多种编程语言,并且可以通过各种插件进行功能扩展。Sublime Text由程序员Jon Skinner于2008年1月份开发出来,最初被设计为一个具有丰富扩展功能的Vim。它具有漂…...
高危漏洞CVE-2024-38077的修复指南
“ 根据2024年8月9日,国家信息安全漏洞共享平台(CNVD)收录了Windows远程桌面许可服务远程代码执行漏洞(CNVD-2024-34918,对应CVE-2024-38077)。未经身份认证的攻击者可利用漏洞远程执行代码,获取服务器控制权限。目前,该漏洞的部分技术原理和概念验证伪代码已公开,厂商…...
docker基本管理和应用
docker是一个开源的应用容器引擎,基于go语言开发的 docker是运行在linux的容器化工具,可以理解为轻量级的虚拟机 可以在任何主机上,轻松创建的一个轻量级,可移植的,自给自足的容器 鲸鱼--------->宿主机 集装箱…...
AI招聘在人才盘活中的作用:开启智慧人力新篇章
一、引言:AI赋能招聘新纪元 在21世纪的今天,随着科技的飞速发展,人工智能(AI)已经渗透到社会经济的各个角落,其中,人力资源管理领域也不例外。AI技术的引入,不仅颠覆了传统的招聘模…...
探索SD NAND配套测试工具:工程师的得力助手
在快速发展的存储技术领域,SD NAND因其高速读写、低功耗和高可靠性而广受青睐。然而,对于工程师来说,验证SD NAND的性能并非易事,为了便于工程师验证,MK 米客方德开发设计了SD NAND配套测试工具。 一、SD NAND转接板简…...
三十六、【人工智能】【机器学习】【监督学习】- Bagging算法模型
系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
