当前位置: 首页 > news >正文

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>

解释:

  1. <SonCom message="father message"/>:这里老爸(App.vue)对着儿子(SonCom)喊了一声:“喂,儿子!我给你带了一个消息:‘father message’!记得收好了!”

  2. 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>

解释:

  1. defineProps({ message: String }):这里的 defineProps 就是儿子打开的“接收箱”。在箱子上,儿子写上了标签“message”(意思是“我准备接收这个叫 message 的数据”),类型是 String,这样确保数据格式对得上。

  2. {{ message }}:这个地方是儿子在展示老爸传来的数据。儿子把 message 这个变量放在 {{ }} 里,让它出现在页面上。意思是:“看呀,我爸给我发来的消息是:father message!”

总结:父传子的过程

  1. 父亲组件(App.vue)用 message="father message" 把数据“贴”在儿子组件(SonCom)身上。
  2. 儿子组件用 defineProps 打开数据接收箱,看到“哦,我爸传来了一个叫 message 的消息”。
  3. 最后,儿子用 {{ 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 样式只是让父组件“穿上独一无二的衣服”,不影响其他组件的样式。

总结一下

这段代码里有两个关键的绑定方式:

  1. 直接传值:比如 message="father message",这种传递方式直接把字符串发给儿子,不需要冒号。
  2. 变量绑定:比如 :count="count",这里的冒号 : 就相当于“打开数据管道”,允许父组件把它的变量 count 传递给儿子。也就是说,老爸可以动态地改变 count 的值,儿子会立刻收到更新的数字。

命名规则小贴士

属性名字(比如 message 和 count)其实是父子间的“通信代码”,只要两边名字对上了,数据就能成功传递。换句话说,父亲叫这个包裹“count”,那儿子也要叫它“count”,才能识别出来是同一个数据。

所以,这里就是:

  • :count="count":用冒号表示变量绑定,把父组件的 count 变量(值为100)传递给儿子。
  • message="father message":直接传递字符串,适合静态信息。

这样一来,父亲的两条信息——一个数字,一个消息,就都送达儿子那里了!

相关文章:

Vue3父传子

1. App.vue - 父组件 咱们先来看左边的 App.vue&#xff0c;它扮演的是“父亲”角色——你可以想象它是一位热心的老爸&#xff0c;手里拿着一条消息&#xff0c;正准备把这条消息送到“儿子”那里。 <script setup> // 这个 setup 就像一个神奇的开关&#xff0c;一开…...

使用VBA宏合并多个Excel文件的Sheet页

使用VBA宏合并多个Excel文件的Sheet页 在日常的Excel数据处理工作中&#xff0c;我们经常需要将多个Excel文件中的工作表合并到一个Excel文件中。这种操作可以极大地提高数据处理效率&#xff0c;但如果文件数量较多&#xff0c;手动合并会非常繁琐。本文将介绍如何使用VBA宏来…...

Anolis8防火墙安全设置

一、账号安全 1、禁止root远程登录 首先创建一个普通用户&#xff0c;然后修改系统配置禁止root登录&#xff0c;因为root作为系统默认的超级管理员&#xff0c;权限过大&#xff0c;日常操作使用易导致安全风险。 1.1、首先要建立一个新的登录用户 useradd username #增…...

标题:自动化运维:现代IT运维的革新力量

标题&#xff1a;自动化运维&#xff1a;现代IT运维的革新力量 随着信息技术的飞速发展&#xff0c;企业对于IT系统的依赖日益加深&#xff0c;运维工作的重要性也愈发凸显。传统的运维模式&#xff0c;往往依赖于人工操作&#xff0c;效率低下且容易出错&#xff0c;难以满足…...

无人机之姿态融合算法篇

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

Redis系列---数据管理

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

【Linux系统编程】第四十二弹---多线程编程全攻略:涵盖线程创建、异常处理、用途、进程对比及线程控制

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、线程创建 2、线程异常 3、线程用途 4、进程 VS 线程 5、线程控制 5.1、创建和等待线程 1、线程创建 线程能看到进程的大…...

Rust 力扣 - 2379. 得到 K 个黑块的最少涂色次数

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 本题可以转换为求长度为k的子数组中白色块的最少数量 我们遍历长度为k的窗口&#xff0c;我们只需要记录窗口内的白色块的数量即可&#xff0c;遍历过程中刷新白色块的数量的最小值 题解代码 impl Solution {…...

“单元测试”应该怎么写比较好

如何正确写单元测试 单元测试重要性写单元测试时存在的问题1、如何命名测试类&方法1.1、测试类命名规范1.2、测试方法命名规范 2、测试类的要求2.1测试行覆盖率100%2.2、单一职责2.3、可重复2.4、外部隔离&#xff0c;无任何外部依赖2.5、正确的使用断言2.6、不应该为了测试…...

腾讯开源首个文图生3D大模型Hunyuan3D-1.0

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

c语言简单编程练习10

1、typedef和#define的区别 在用作数据类型替换时的区别&#xff1a; #include <stdio.h> #include <unistd.h>typedef char * A; //typedef需要&#xff1b; #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个字节存储&#xff0c;实现存放&#xff0c;A[0][0]的起始地址为1000,计算&#xff1a; (10分) (1)数组最后一个元素A[5][7]的起始地址&#xff1b; (2)按行优先存放时&#xff0c;元素A[1][4]的起始地址&#xff1b; (3)按列优先存放时…...

DBAPI连接阿里云 maxcompute 报错

使用正确的驱动包 访问以下链接寻找驱动包 https://github.com/aliyun/aliyun-odps-jdbc/releases/tag/v3.4.3 注意要使用odps-jdbc-3.4.3-jar-with-dependencies.jar &#xff0c;这个是完整的jar包 不要使用odps-jdbc-3.4.3.jar&#xff0c;这个不是完整的&#xff0c;它还…...

Web3对社交媒体的影响:重新定义用户互动方式

随着互联网的发展和人们对隐私、安全、所有权的需求不断提高&#xff0c;Web3 的概念逐渐深入人心。Web3 的出现标志着一个去中心化、用户主导的网络时代的到来&#xff0c;这也将对社交媒体产生深远的影响。Web3 不仅推动社交媒体从中心化模式向用户主导的去中心化模式转变&am…...

【LeetCode】【算法】322. 零钱兑换

LeetCode 322. 零钱兑换 题目 给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额&#xff0c;返回-1。 你可以认为每…...

人工智能技术:未来生活的“魔法师”

想象一下&#xff0c;未来的某一天&#xff0c;你醒来时&#xff0c;智能助手已经为你准备好了早餐&#xff0c;你的智能家居系统根据你的心情和日程安排调整了室内的光线和音乐&#xff0c;而你的自动驾驶汽车已经在门口等你。这不是科幻小说&#xff0c;这是人工智能技术为我…...

docker加载目录中所有的镜像

docker加载目录中所有的镜像 首先我们知道读取单个命令如下: docker load -i example_image.tar.gz读取两三个也是: docker load -i image1.tar.gz image2.tar.gz image3.tar.gz但是如果是几十个&#xff0c;那么上面的命令就显得捉襟见肘了&#xff1b;比如当前我有个image…...

使用免费的飞书机器人,实现消息推送实时通知

大家好&#xff0c;我是小悟。 实际工作中&#xff0c;我们会经常遇到需要给用户发送业务通知的功能需求&#xff0c;如果是小程序端&#xff0c;那么就使用小程序提供的模板消息通知&#xff0c;如果是APP端&#xff0c;一般就是使用个推、极光等第三方平台。 当然还有个万能…...

各种网络设备的工作原理

网络设备的工作原理涉及多种设备&#xff0c;包括路由器、交换机、防火墙等&#xff0c;它们各自承担着不同的功能。以下是对这些设备工作原理的详细解释&#xff1a; 一、路由器路由器是互联网通信中的关键设备&#xff0c;它负责在不同网络之间传输数据包。功能&#xff1a;路…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

Visual Studio Code 扩展

Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后&#xff0c;命令 changeCase.commands 可预览转换效果 EmmyLua…...

ThreadLocal 源码

ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物&#xff0c;因为每个访问一个线程局部变量的线程&#xff08;通过其 get 或 set 方法&#xff09;都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段&#xff0c;这些类希望将…...

电脑桌面太单调,用Python写一个桌面小宠物应用。

下面是一个使用Python创建的简单桌面小宠物应用。这个小宠物会在桌面上游荡&#xff0c;可以响应鼠标点击&#xff0c;并且有简单的动画效果。 import tkinter as tk import random import time from PIL import Image, ImageTk import os import sysclass DesktopPet:def __i…...