Vue3父传子
1. App.vue - 父组件
咱们先来看左边的 App.vue
,它扮演的是“父亲”角色——你可以想象它是一位热心的老爸,手里拿着一条消息,正准备把这条消息送到“儿子”那里。
<script setup>
// 这个 setup 就像一个神奇的开关,一开起来,里面的东西直接可以用!
// 引入了 SonCom(儿子组件),可以理解为“叫上儿子来!”
import SonCom from './son-com.vue'
</script><template><div class="father"><h2>父组件App</h2><!-- 1. 绑定属性 --><SonCom message="father message"/></div>
</template><style scoped>
/* 样式在这儿,打扮打扮父亲! */
</style>
解释:
-
<SonCom message="father message"/>
:这里老爸(App.vue
)对着儿子(SonCom
)喊了一声:“喂,儿子!我给你带了一个消息:‘father message’!记得收好了!” -
message="father message"
:这个地方,就是所谓的“绑定属性”。这个名字message
就是我们用来传递数据的“渠道”。比如你家要寄包裹,“message”就相当于包裹的标签,儿子收到后就能读到“父亲传来的数据”。
2. son-com.vue - 子组件
再来看看右边的 son-com.vue
,这是儿子接收数据的地方。
<script setup>
// defineProps 就像一个数据接收箱,儿子打开箱子就能看到老爸给的数据啦!
defineProps({message: String
})
</script><template><div class="son"><h3>子组件Son</h3><div>父组件传入的数据 = {{ message }}</div></div>
</template><style scoped>
/* 儿子也得稍微打扮一下! */
</style>
解释:
-
defineProps({ message: String })
:这里的defineProps
就是儿子打开的“接收箱”。在箱子上,儿子写上了标签“message”(意思是“我准备接收这个叫message
的数据”),类型是String
,这样确保数据格式对得上。 -
{{ message }}
:这个地方是儿子在展示老爸传来的数据。儿子把message
这个变量放在{{ }}
里,让它出现在页面上。意思是:“看呀,我爸给我发来的消息是:father message!”
总结:父传子的过程
- 父亲组件(
App.vue
)用message="father message"
把数据“贴”在儿子组件(SonCom
)身上。 - 儿子组件用
defineProps
打开数据接收箱,看到“哦,我爸传来了一个叫message
的消息”。 - 最后,儿子用
{{ message }}
把消息展示出来,告诉大家“这是我爸给的!”
命名规则小贴士
这里的“message
”其实是个名字,你可以随便改,比如叫“爸爸的叮嘱”。只要两边的名字对得上(父组件传递的 message="..."
和子组件的 defineProps({ message: String })
),数据就能传递成功!
所以,只要“老爸发什么名字的包裹,儿子接收箱也叫同样的名字”,就能愉快地通信啦!
完整代码如下:
如果在父组件里面添加一个数字:
<script setup>
// 这个 setup 就像一个神奇的开关,一开起来,里面的东西直接可以用!
// 引入了 SonCom(儿子组件),可以理解为“叫上儿子来!” import SonCom from './son-com.vue' const count =ref(100)
</script>
<template> <div class="father"> <h2>父组件App</h2> <!-- 1. 绑定属性 --> <SonCom :count="count" message="father message"/> </div>
</template>
<style scoped> /* 样式在这儿,打扮打扮父亲! */ </style>
1. script setup
部分
<script setup>
// 这个 setup 就像一个神奇的开关,一开起来,里面的东西直接可以用!
// 引入了 SonCom(儿子组件),可以理解为“叫上儿子来!”
import SonCom from './son-com.vue'
const count = 100 // 定义了一个叫 count 的常量,装着数字100
</script>
这里我们不仅引入了儿子组件 SonCom
,还定义了一个 count
常量,值是 100
。你可以把它想象成父亲的“特别叮嘱”——一个数字100,准备一起打包给儿子。
2. template
部分
<template><div class="father"><h2>父组件App</h2><!-- 1. 绑定属性 --><SonCom :count="count" message="father message"/></div>
</template>
在这里,父组件通过 <SonCom :count="count" message="father message"/>
来喊儿子:“喂,儿子!我这儿有两份数据,注意接收哦!”
-
:count="count"
:这个语法的关键是前面的冒号:
。在Vue里,冒号表示“绑定”,意思是把我们在script setup
中定义的变量count
的值传给SonCom
组件。换句话说,count
变量里的100
会被传到儿子那里。就像是老爸说:“我给你带了个数字100,记得收好!” -
message="father message"
:这部分是直接传字符串的,没有冒号。老爸大喊一声:“我还有一条文本消息:‘father message’!”这种直接写属性值的方式,只适合简单的字符串,而不能直接传递变量。
3. style scoped
部分
<style scoped>
/* 样式在这儿,打扮打扮父亲! */
</style>
同样,scoped
样式只是让父组件“穿上独一无二的衣服”,不影响其他组件的样式。
总结一下
这段代码里有两个关键的绑定方式:
- 直接传值:比如
message="father message"
,这种传递方式直接把字符串发给儿子,不需要冒号。 - 变量绑定:比如
:count="count"
,这里的冒号:
就相当于“打开数据管道”,允许父组件把它的变量count
传递给儿子。也就是说,老爸可以动态地改变count
的值,儿子会立刻收到更新的数字。
命名规则小贴士
属性名字(比如 message
和 count
)其实是父子间的“通信代码”,只要两边名字对上了,数据就能成功传递。换句话说,父亲叫这个包裹“count”,那儿子也要叫它“count”,才能识别出来是同一个数据。
所以,这里就是:
:count="count"
:用冒号表示变量绑定,把父组件的count
变量(值为100)传递给儿子。message="father message"
:直接传递字符串,适合静态信息。
这样一来,父亲的两条信息——一个数字,一个消息,就都送达儿子那里了!
相关文章:

Vue3父传子
1. App.vue - 父组件 咱们先来看左边的 App.vue,它扮演的是“父亲”角色——你可以想象它是一位热心的老爸,手里拿着一条消息,正准备把这条消息送到“儿子”那里。 <script setup> // 这个 setup 就像一个神奇的开关,一开…...
使用VBA宏合并多个Excel文件的Sheet页
使用VBA宏合并多个Excel文件的Sheet页 在日常的Excel数据处理工作中,我们经常需要将多个Excel文件中的工作表合并到一个Excel文件中。这种操作可以极大地提高数据处理效率,但如果文件数量较多,手动合并会非常繁琐。本文将介绍如何使用VBA宏来…...
Anolis8防火墙安全设置
一、账号安全 1、禁止root远程登录 首先创建一个普通用户,然后修改系统配置禁止root登录,因为root作为系统默认的超级管理员,权限过大,日常操作使用易导致安全风险。 1.1、首先要建立一个新的登录用户 useradd username #增…...
标题:自动化运维:现代IT运维的革新力量
标题:自动化运维:现代IT运维的革新力量 随着信息技术的飞速发展,企业对于IT系统的依赖日益加深,运维工作的重要性也愈发凸显。传统的运维模式,往往依赖于人工操作,效率低下且容易出错,难以满足…...

无人机之姿态融合算法篇
无人机的姿态融合算法是无人机飞行控制中的核心技术之一,它通过将来自不同传感器的数据进行融合,以实现更加精确、可靠的姿态检测。 一、传感器选择与数据预处理 无人机姿态融合算法通常依赖于多种传感器,包括加速度计、陀螺仪、磁力计等。这…...

Redis系列---数据管理
目录标题 数据类型String优点缺点底层结构使用场景实际使用 List优点缺点底层结构使用场景实际使用 Hash优点缺点底层结构使用场景实际使用 Set优点缺点底层结构使用场景实际使用 Zset优点缺点底层结构使用场景实际使用 HyperLogLog优点缺点底层结构使用场景实际使用 GEO优点缺…...

【Linux系统编程】第四十二弹---多线程编程全攻略:涵盖线程创建、异常处理、用途、进程对比及线程控制
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、线程创建 2、线程异常 3、线程用途 4、进程 VS 线程 5、线程控制 5.1、创建和等待线程 1、线程创建 线程能看到进程的大…...

Rust 力扣 - 2379. 得到 K 个黑块的最少涂色次数
文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 本题可以转换为求长度为k的子数组中白色块的最少数量 我们遍历长度为k的窗口,我们只需要记录窗口内的白色块的数量即可,遍历过程中刷新白色块的数量的最小值 题解代码 impl Solution {…...
“单元测试”应该怎么写比较好
如何正确写单元测试 单元测试重要性写单元测试时存在的问题1、如何命名测试类&方法1.1、测试类命名规范1.2、测试方法命名规范 2、测试类的要求2.1测试行覆盖率100%2.2、单一职责2.3、可重复2.4、外部隔离,无任何外部依赖2.5、正确的使用断言2.6、不应该为了测试…...

腾讯开源首个文图生3D大模型Hunyuan3D-1.0
🦉 AI新闻 🚀 腾讯开源首个文图生3D大模型Hunyuan3D-1.0 摘要:腾讯混元于11月5日开源了Hunyuan3D-1.0,这是首个同时支持文本生成和图像生成的3D开源大模型。该模型采用两阶段生成方法,可以在10秒内生成3D资产。第一阶…...

c语言简单编程练习10
1、typedef和#define的区别 在用作数据类型替换时的区别: #include <stdio.h> #include <unistd.h>typedef char * A; //typedef需要; #define B char *int main(int argc, char *argv[]) {A a,b;B c,d;printf("a_size%ld\n"…...

时序预测 | Matlab基于TSA-LSTM-Attention被囊群优化算法优化长短期记忆网络融合注意力机制多变量多步时间序列预测
时序预测 | Matlab基于TSA-LSTM-Attention多变量多步预测 目录 时序预测 | Matlab基于TSA-LSTM-Attention多变量多步预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Matlab基于TSA-LSTM-Attention被囊群优化算法优化长短期记忆网络融合注意力机制多变量多…...
数据结构[2016]
一、设有二维数组A[6][8],每个元素占6个字节存储,实现存放,A[0][0]的起始地址为1000,计算: (10分) (1)数组最后一个元素A[5][7]的起始地址; (2)按行优先存放时,元素A[1][4]的起始地址; (3)按列优先存放时…...

DBAPI连接阿里云 maxcompute 报错
使用正确的驱动包 访问以下链接寻找驱动包 https://github.com/aliyun/aliyun-odps-jdbc/releases/tag/v3.4.3 注意要使用odps-jdbc-3.4.3-jar-with-dependencies.jar ,这个是完整的jar包 不要使用odps-jdbc-3.4.3.jar,这个不是完整的,它还…...

Web3对社交媒体的影响:重新定义用户互动方式
随着互联网的发展和人们对隐私、安全、所有权的需求不断提高,Web3 的概念逐渐深入人心。Web3 的出现标志着一个去中心化、用户主导的网络时代的到来,这也将对社交媒体产生深远的影响。Web3 不仅推动社交媒体从中心化模式向用户主导的去中心化模式转变&am…...
【LeetCode】【算法】322. 零钱兑换
LeetCode 322. 零钱兑换 题目 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回-1。 你可以认为每…...

人工智能技术:未来生活的“魔法师”
想象一下,未来的某一天,你醒来时,智能助手已经为你准备好了早餐,你的智能家居系统根据你的心情和日程安排调整了室内的光线和音乐,而你的自动驾驶汽车已经在门口等你。这不是科幻小说,这是人工智能技术为我…...
docker加载目录中所有的镜像
docker加载目录中所有的镜像 首先我们知道读取单个命令如下: docker load -i example_image.tar.gz读取两三个也是: docker load -i image1.tar.gz image2.tar.gz image3.tar.gz但是如果是几十个,那么上面的命令就显得捉襟见肘了;比如当前我有个image…...

使用免费的飞书机器人,实现消息推送实时通知
大家好,我是小悟。 实际工作中,我们会经常遇到需要给用户发送业务通知的功能需求,如果是小程序端,那么就使用小程序提供的模板消息通知,如果是APP端,一般就是使用个推、极光等第三方平台。 当然还有个万能…...
各种网络设备的工作原理
网络设备的工作原理涉及多种设备,包括路由器、交换机、防火墙等,它们各自承担着不同的功能。以下是对这些设备工作原理的详细解释: 一、路由器路由器是互联网通信中的关键设备,它负责在不同网络之间传输数据包。功能:路…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...

华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...