03-02-Vue组件之间的传值
前言
我们接着上一篇文章 03-01-Vue组件的定义和注册 来讲。
下一篇文章 04-Vue:ref获取页面节点–很简单
父组件向子组件传值
我们可以这样理解:Vue实例就是一个父组件,而我们自定义的组件(包括全局组件、私有组件)就是子组件。
【重点】需要注意的是,子组件不能直接使用父组件中的数据。父组件可以通过props属性向子组件传值。
父组件向子组件传值的代码举例
父组件:
<template><div id="app"><MyComponent :msg="message"></MyComponent></div>
</template><script>
import MyComponent from './components/MyComponent.vue';
export default {components:{MyComponent},data(){return{message: '这是父组件中的变量'}}
};
</script>
子组件:
<template><div>这是组件中的内容, msg: {{ msg }}</div>
</template><script>
export default {props: ['msg']
};
</script><style>
</style>
效果如下:

父组件给子组件传值的步骤:
根据上方截图,我们可以总结出父组件给子组件传值的步骤如下。
(1)在子组件的props属性中声明父亲传递过来的数据
(2)使用子组件的模板时,绑定props中对应的属性
(3)父组件在引用子组件时,进行属性绑定。
子组件中,data中的数据和props中的数据的区别:
-
子组件中的 data 数据,并不是通过 父组件传递过来的,而是子组件自身私有的,比如: 子组件通过 Ajax ,请求回来的数据,都可以放到 data 身上。props 中的数据,都是通过 父组件 传递给子组件的。
-
data中的数据是可读可写的;props中的属性只是可读的,无法重新赋值,重新赋值会报错(也就是说,子组件不要直接去修改父组件中的数据)。
父组件将方法传递给子组件
父组件通过事件绑定机制,将父组件的方法传递给子组件
父组件代码:
<template><div id="app"><!-- 父组件向子组件 传递 方法,是通过 事件绑定机制; v-on。当我们自定义了 一个 事件属性 parent-show(这个地方不能用驼峰命名)之后,--><!-- 那么,子组件就能够,通过 emit 来调用 传递进去的 这个 方法了 --><!-- 【第一步】。意思是说,`show`是父组件的方法名,`parent-show`是自定义的时间属性,稍后要在子组件中用到 --><MyComponent :msg="message" @parentShow="show"></MyComponent></div>
</template><script>
import MyComponent from "./components/MyComponent.vue";
export default {components: {MyComponent,},data() {return {message: "这是父组件中的变量",};},methods: {// 定义父组件的show方法show() {console.log("这是父组件的方法");},},
};
</script>
子组件代码:
<template><!-- 【第二步】按照正常的写法来:点击按钮,调用子组件的方法 --><div @click="handleClick">这是组件中的内容, msg: {{ msg }}</div>
</template><script>
export default {props: ["msg"],methods: {handleClick() {// 当点击子组件的按钮时,如何 拿到 父组件传递过来的 func 方法,并调用这个方法???// emit 英文原意: 是触发,调用、发射。意思是,触发父组件的方法// 【第三步】 在子组件的方法中,通过 emit 触发父组件的方法this.$emit("parentShow");},},
};
</script><style>
</style>
效果如下:(点击子组件,触发了父组件的方法)

根据上面的代码,我们可以总结出,父组件将方法传递给子组件,分为三步,具体可以看上方代码的注释。
子组件向父组件传值
上面的一段中,我们再看一遍父组件将方法传递给子组件的这段代码(一定要再看一遍,因为我们是要在此基础之上做修改)。
如果要实现子组件向父组件传值,代码是类似的,我们只需要在子组件通过emit触发父组件的方法时,把子组件的参数带出去就可以了。代码如下。
父组件代码:
<template><div id="app"><MyComponent :msg="message" @parentShow="show"></MyComponent></div>
</template><script>
import MyComponent from "./components/MyComponent.vue";
export default {components: {MyComponent,},data() {return {message: "这是父组件中的变量",};},methods: {// 定义父组件的show方法show(data1, data2) { //【第二步】父组件里放两个参数,这个两个参数就代表着子组件中的`childData1`、`childData2`console.log("这是父组件的方法");console.log('子组件传值:',data1, data2);},},
};
</script>
子组件代码:
<template><div @click="handleClick">这是组件中的内容, msg: {{ msg }}</div>
</template><script>
export default {props: ["msg"],methods: {handleClick() {// 子组件如果要给父组件传递参数,在触发 emit 的时候,通过参数的形式带出去就可以了// 【第一步】在子组件里,我们带两个参数出去,传给父组件this.$emit("parentShow", 'childData1', 'childData2');},},
};
</script><style>
</style>
运行结果:(点击之后)

代码举例2:(将子组件中的data数据传递给父组件,存放到父组件的data中)
在上方代码的基础之上,做改进。
父组件代码
<template><div id="app"><MyComponent :msg="message" @parentShow="show"></MyComponent></div>
</template><script>
import MyComponent from "./components/MyComponent.vue";
export default {components: {MyComponent,},data() {return {message: "这是父组件中的变量",parentData: null,};},methods: {// 定义父组件的show方法show(arg) {//【第二步】父组件里放参数,这个参数就代表着子组件中的 child.dataconsole.log("父组件提供的方法");this.parentData = arg; //将参数arg传递给父组件的data,也就达到了目的:子组件传递数据,赋值给父组件console.log("打印父组件的数据(这是子组件传过来的):" +JSON.stringify(this.parentData));},},
};
</script>
子组件代码
<template><div @click="handleClick">这是组件中的内容, msg: {{ msg }}</div>
</template><script>
export default {props: ["msg"],data(){return{childData: { //定义自组件的数据name: 'HydeLinjr',age: 26}}},methods: {handleClick() {// 子组件如果要给父组件传递参数,在触发 emit 的时候,通过参数的形式带出去就可以了// 【第一步】在子组件里,我们带两个参数出去,传给父组件this.$emit("parentShow", this.childData);},},
};
</script><style>
</style>
运行结果:(点击之后)

相关文章:
03-02-Vue组件之间的传值
前言 我们接着上一篇文章 03-01-Vue组件的定义和注册 来讲。 下一篇文章 04-Vue:ref获取页面节点–很简单 父组件向子组件传值 我们可以这样理解:Vue实例就是一个父组件,而我们自定义的组件(包括全局组件、私有组件)…...
昂达固态硬盘数据恢复方法:全面解析与操作指南
在数字化时代,数据已经成为我们生活和工作中不可或缺的一部分。而固态硬盘(SSD)由于其读写速度快、抗震性强等优点,慢慢取代了传统的机械硬盘,成为我们存储数据的主要选择。然而,即便再先进的存储设备&…...
C++的红黑树
目录 基本概念 插入结点的颜色 判断性质是否破坏 调整方式 u为g的右孩子 u存在且为红 u存在且为黑 u不存在 结论 红黑树结点定义 代码实现 基本概念 1、红黑树是一种特殊的二叉搜索树,每个结点会增加一个存储位表示结点的颜色(红或黑&#x…...
Keras深度学习框架第二十九讲:在自定义训练循环中应用KerasTuner超参数优化
1、简介 在KerasTuner中,HyperModel类提供了一种方便的方式来在可重用对象中定义搜索空间。你可以通过重写HyperModel.build()方法来定义和进行模型的超参数调优。为了对训练过程进行超参数调优(例如,通过选择适当的批处理大小、训练轮数或数…...
手机App收集个人信息,用户是否有权拒绝?
其实过度收集个人信息这件事,在APP上随处可见,泛滥成灾。 前两天有个不疼不痒的小软件“小鸡词典”,因为收集个人信息受到了处罚。 小鸡词典因划分为工具类APP过度收集隐私(手机号、地理位置定位)、不同意政策不能用…...
云下到云上,丽迅物流如何实现数据库降本50% | OceanBase案例
在2024年3月20日的首场OceanBase数据库城市行活动中,专注于物流及供应链解决方案的丽迅物流的架构师阳磊,围绕“OB Cloud在丽迅物流的实践”这一主题,进行了精彩的演讲。本文为此次演讲的内容回顾。 在丽迅物流(Lesoon Logistics…...
STM32无源蜂鸣器播放音乐
开发板:野火霸天虎V2 单片机:STM32F407ZGT6 开发软件:MDKSTM32CubeMX 文章目录 前言一、找一篇音乐的简谱二、确定音调三、确定节拍四、使用STM32CubeMX生成初始化代码五、代码分析 前言 本实验使用的是低电平触发的无源蜂鸣器 无源蜂鸣器是…...
【云原生】kubernetes中的认证、权限设置---RBAC授权原理分析与应用实战
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
【Python设计模式04】策略模式
策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以互相替换。策略模式让算法的变化不会影响使用算法的客户端,使得算法可以独立于客户端的变化而变化。…...
私域用户画像分析:你必须知道的3个关键点!
在互联网时代的变革中,私域流量成为越来越多企业的关注焦点。而了解私域用户画像是建立精准营销策略的关键一步。 今天,就给大家分享私域用户画像分析的三个关键点,让大家都能更好地进行用户画像分析。 1、市场需求 理解市场需求是把握用户…...
【MATLAB源码-第74期】基于matlab的OFDM-IM索引调制系统不同频偏误码率对比,对比OFDM系统。
操作环境: MATLAB 2022a 1、算法描述 OFDM-IM索引调制技术是一种新型的无线通信技术,它将正交频分复用(OFDM)和索引调制(IM)相结合,以提高频谱效率和系统容量。OFDM-IM索引调制技术的基本思想…...
优于其他超导量子比特数千倍!猫态量子比特实现超过十秒的受控比特翻转时间
内容来源:量子前哨(ID:Qforepost) 文丨娴睿/慕一 排版丨沛贤 深度好文:2000字丨8分钟阅读 摘要:量子计算公司Alice & Bob和QUANTIC团队(国立巴黎高等矿业学院PSL分校、巴黎高等师范学院和…...
QtXlsx库编译使用
文章目录 一、前言二、Windows编译使用2.1 用法①:QtXlsx作为Qt的附加模块2.1.1 检验是否安装Perl2.1.2 下载并解压QtXlsx源码2.1.3 MinGW 64-bit安装模块2.1.4 测试 2.2 用法②:直接使用源码 三、Linus编译使用3.1、安装Qt5开发软件包:qtbas…...
LeetCode题练习与总结:二叉树的层序遍历Ⅱ--107
一、题目描述 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[…...
WIFI国家码设置的影响
记录下工作中关于国家码设置对WIFI的影响,以SKYLAB的SKW99和SDZ202模组为例进行说明。对应到日常,就是我们经常提及手机是“美版”“港版”等,它们的wifi国家码是不同的,各版本在wifi使用中遇到的各种情况与下面所述是吻合的。 现…...
2024年软考高项-信息系统管理师介绍-备考-考试内容-通过攻略
介绍 以下是计算机软件考试的资格设置,本文说的是高级资格中的信息系统项目管理师(简称"高项"),是比较热门和好考的选择,与中级的"系统集成项目管理工程师"有大部分的知识重叠交叉,中级考了"系统集成项…...
Python知识点复习
文章目录 Input & OutputVariables & Data typesPython字符串重复(字符串乘法)字符串和数字连接在一起print时,要强制类型转换int为str用input()得到的用户输入,是str类型,如果要以int形式计算的话,…...
GeoScene产品学习视频收集
1、易智瑞运营的极思课堂https://www.geosceneonline.cn/learn/library 2、历年易智瑞技术公开课视频资料 链接:技术公开课-易智瑞信息技术有限公司,GIS/地理信息系统,空间分析-制图-位置智能-地图 3、一些关于GeoScene系列产品和技术操作的视…...
51单片机的最小系统详解
51单片机的最小系统详解 1. 引言 在嵌入式系统中,51单片机被广泛应用于各种小型控制器和嵌入式开发板中。相信很多人都接触过51单片机,但是对于51单片机的最小系统却了解得不够深入。本文将从振荡电路、电源模块、复位电路、LED指示灯和调试接口五个方面详细介绍51单片机的…...
路径规划搜路算法有哪些?
路径规划搜索算法是帮助移动机器人或自动化系统在环境中从起点导航至终点的计算方法。以下是一些常见的路径规划搜索算法: Dijkstra算法:一种经典的最短路径搜索算法,适用于没有负权边的图。 A*算法:一种启发式搜索算法ÿ…...
深圳LED显示屏生产厂家
行业痛点分析深圳作为中国LED显示屏产业的重要基地,虽然技术和市场发展成熟,但仍面临诸多挑战。当前,技术挑战主要集中在高密度显示的像素一致性、高亮度与高对比度的平衡、以及异形定制的复杂工艺上。数据表明,超过60%的LED显示屏…...
3分钟快速上手:Win11Debloat - 让你的Windows 11系统更纯净高效
3分钟快速上手:Win11Debloat - 让你的Windows 11系统更纯净高效 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutt…...
Pop Shell浮动窗口配置终极指南:如何让特定应用始终保持浮动状态
Pop Shell浮动窗口配置终极指南:如何让特定应用始终保持浮动状态 【免费下载链接】shell Pop!_OS Shell 项目地址: https://gitcode.com/gh_mirrors/sh/shell Pop!_OS Shell(简称Pop Shell)是一款为Linux桌面环境设计的高效窗口管理工…...
用Anything to RealCharacters为游戏角色“拍照”:生成高质感真人定妆照
用Anything to RealCharacters为游戏角色"拍照":生成高质感真人定妆照 1. 引言:游戏角色的"数字摄影棚" 想象一下,你精心设计的游戏角色突然从屏幕里走出来,站在真实的摄影棚中,专业的灯光打在他…...
Windows 11 LTSC 应用商店安装工具:一键解锁完整应用生态
Windows 11 LTSC 应用商店安装工具:一键解锁完整应用生态 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否在使用Windows 11 LTSC版本…...
广州SEO优化服务有哪些
广州SEO优化服务:全面提升网站排名的关键策略 在当前竞争激烈的互联网环境中,广州SEO优化服务显得尤为重要。搜索引擎优化(SEO)不仅能够提高网站在搜索结果中的排名,还能有效地吸引更多的潜在客户。广州SEO优化服务有…...
如何用obs-multi-rtmp解决多平台直播重复编码问题?超高效方案分享
如何用obs-multi-rtmp解决多平台直播重复编码问题?超高效方案分享 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp obs-multi-rtmp是一款开源的OBS插件,通过单次编…...
南北阁Nanbeige 4.1-3B生成效果:Python入门学习路径规划与习题生成
南北阁Nanbeige 4.1-3B生成效果:Python入门学习路径规划与习题生成 最近在尝试各种AI模型,想看看它们在实际应用场景里到底能帮上什么忙。正好有个朋友想学Python,问我有没有好的学习路线推荐。我手头事情多,没法给他从头到尾规划…...
结合YOLOv8的目标检测:为LiuJuan生成画作智能添加题跋与印章
结合YOLOv8的目标检测:为AI生成画作智能添加题跋与印章 1. 引言 想象一下,你刚用AI工具生成了一幅意境优美的山水画,画中山水空灵,笔触细腻,颇有几分古意。但总觉得少了点什么——对,就是那种传统国画特有…...
GCC-Net实战解析:如何通过门控跨域协作提升水下目标检测精度
1. GCC-Net:水下目标检测的新范式 水下目标检测一直是计算机视觉领域的特殊挑战。与常规场景不同,水下环境存在光线衰减、散射效应、颜色失真等问题,导致图像质量显著下降。传统方法要么直接使用原始图像(面临低对比度问题&#x…...
