vue2.x 中父组件通过props向子组件传递数据详细解读

ops/2025/2/22 21:57:03/
htmledit_views">

1. 父组件向子组件传递数据的步骤

  1. 在子组件中定义 props

    子组件通过 props 选项声明它期望接收的数据。props 可以是数组形式(简单声明)或对象形式(支持类型检查和默认值)。
  2. 在父组件中使用子组件时绑定 props

    父组件通过 v-bind(或简写为 :)将数据传递给子组件的 props
  3. 子组件使用接收到的数据

    子组件可以直接在模板或逻辑中使用 props 中的数据。

2. 示例代码

子组件 (ChildComponent.html" title=vue>vue)
<template><div><h3>子组件</h3><p>接收到的消息:{{ message }}</p><p>接收到的数字:{{ number }}</p></div>
</template><script>
export default {// 定义 propsprops: {// 接收一个字符串类型的 messagemessage: {type: String,required: true, // 必传},// 接收一个数字类型的 number,默认值为 0number: {type: Number,default: 0, // 默认值},},
};
</script><style scoped>
div {border: 1px solid #ccc;padding: 10px;margin: 10px;
}
</style>
父组件 (ParentComponent.html" title=vue>vue)
<template><div><h2>父组件</h2><input v-model="parentMessage" placeholder="输入消息" /><input v-model.number="parentNumber" placeholder="输入数字" /><button @click="sendData">传递数据</button><!-- 使用子组件并绑定 props --><ChildComponent :message="parentMessage" :number="parentNumber" /></div>
</template><script>
import ChildComponent from './ChildComponent.html" title=vue>vue';export default {components: {ChildComponent, // 注册子组件},data() {return {parentMessage: 'Hello from Parent', // 父组件的数据parentNumber: 42, // 父组件的数据};},methods: {sendData() {alert('数据已传递给子组件');},},
};
</script><style scoped>
div {padding: 10px;border: 1px solid #000;
}
</style>

3. 代码解析

子组件 (ChildComponent.html" title=vue>vue)
  1. props 定义

    • message:接收一个字符串类型的数据,且是必传的(required: true)。

    • number:接收一个数字类型的数据,默认值为 0

  2. 模板中使用 props

    通过 {{ message }} 和 {{ number }} 显示父组件传递过来的数据。
父组件 (ParentComponent.html" title=vue>vue)
  1. 数据定义

    parentMessage 和 parentNumber 是父组件的数据,通过 v-model 绑定到输入框。
  2. 传递数据给子组件

    使用 v-bind(简写为 :)将父组件的数据绑定到子组件的 props
<ChildComponent :message="parentMessage" :number="parentNumber" />
  1. 动态更新数据

    当用户在输入框中修改数据时,parentMessage 和 parentNumber 会自动更新,并通过 props 传递给子组件。

4. 运行效果

  1. 父组件显示两个输入框和一个按钮。

  2. 用户在输入框中输入内容,点击按钮后,数据会传递给子组件。

  3. 子组件实时显示父组件传递过来的数据。

5. 注意事项

  1. props 单向数据流

    • 父组件向子组件传递数据是单向的,子组件不能直接修改 props 的值。

    • 如果子组件需要修改数据,可以通过 $emit 触发事件,通知父组件修改

  2. props 验证

    可以通过 typerequireddefault 等选项对 props 进行验证,确保数据的正确性。
  3. 动态 props

    使用 v-bind 动态绑定 props,可以实现父组件数据变化时,子组件自动更新。


http://www.ppmy.cn/ops/160612.html

相关文章

day56 第十一章:图论part06

108.冗余连接 注意init初始化 改进&#xff1a; 其实只有一条边冗余&#xff0c;改为&#xff0c;如果两条边在同一个集合里&#xff0c;就输出&#xff0c;不然加入。 #include <iostream> #include <vector> using namespace std;int n 1005; vector<int>…

DeepSeek写俄罗斯方块手机小游戏

DeepSeek写俄罗斯方块手机小游戏 提问 根据提的要求&#xff0c;让DeepSeek整理的需求&#xff0c;进行提问&#xff0c;内容如下&#xff1a; 请生成一个包含以下功能的可运行移动端俄罗斯方块H5文件&#xff1a; 核心功能要求 原生JavaScript实现&#xff0c;适配手机屏幕 …

解锁D3.js与PlantUML的交互奥秘:探索知识图谱数据可视化新领域

解锁D3.js与PlantUML的交互魔法&#xff1a;数据可视化新征程 在前端开发的广袤天地里&#xff0c;数据可视化一直是一颗璀璨的明珠&#xff0c;吸引着无数开发者探索其奥秘。而当D3.js这一强大的JavaScript库&#xff0c;遇上专注于创建UML图的PlantUML&#xff0c;一场奇妙的…

《晶体管电路设计》 第三章 增强输出的电路

一起阅读《晶体管电路设计》系列文章目录 第一章 概述 第二章 放大电路的工作&#xff08;一&#xff09; 第二章 放大电路的工作&#xff08;二&#xff09; 第三章 增强输出的电路 文章目录 一起阅读《晶体管电路设计》系列文章目录前言一、射极跟随器的波形二、电路设计三、…

利用AI优化可再生能源管理:Python让绿色能源更高效

利用AI优化可再生能源管理&#xff1a;Python让绿色能源更高效 引言 在全球气候变化和能源危机的背景下&#xff0c;可再生能源的利用变得尤为重要。然而&#xff0c;可再生能源的管理和优化面临诸多挑战&#xff0c;如能源生产的不稳定性和能源需求的波动性。幸运的是&#…

蓝桥杯15 填空题

1.握手问题&#xff1a; 思路&#xff1a;首先当所有人都握过手&#xff0c;由于一次握手相当于两个人都握手过&#xff0c;所以容易发现这是一个组合问题&#xff0c;为&#xff08;50*49&#xff09;/2&#xff0c;而其中有7个人没有相互握过手&#xff0c;那么减去&#xff…

Node.js中不支持require和import两种导入模块的混用

最近在整理Node.js相关的知识点&#xff0c;发现通过Node.js支持的两个模块导入语句require和import在同时使用时会发生错误&#xff0c;而且错误非常诡异。 例如&#xff0c;在先使用require导入模块&#xff0c;在使用import导入模块时&#xff0c;出现require无法识别&#…

第1章 快速认识线程

1.1 线程的介绍 对于计算机来说每一个任务就是一个进程Process&#xff0c;在每一个进程内部至少要有一个线程Thread是在运行中的。 1.2 快速创建并启动一个线程 1.2.1 尝试并行运行 package chapter01; import java.util.concurrent.TimeUnit; public class TryConcurrenc…