Vue3 Props 属性
一、Props 是什么想象一下你正在组装一个乐高机器人。机器人的头部、手臂、腿部都是独立的组件。为了让手臂知道它应该连接在身体的哪个位置你需要给它一个“连接点”的指令。在 Vue3 中Props就是这个“指令”它是父组件向子组件传递数据的一种方式。简单来说Props 是组件的自定义属性父组件通过它来给子组件“喂”数据。二、Props 的核心作用Props 主要解决组件间的通信问题具体作用如下数据传递父组件可以把数据字符串、数字、数组、对象等传递给子组件。配置组件通过传递不同的 Props 值可以让同一个子组件呈现不同的状态或行为实现复用。单向数据流数据只能从父组件流向子组件这保证了数据变化的可预测性便于调试。类型检查Vue3 的 Composition API 和 script setup 语法支持对 Props 进行类型定义提升代码健壮性。三、Props 的属性Props 选项在 Vue3 中定义 Props 时可以配置多种属性来约束和描述数据。以下是常用的 Props 属性type指定 Prop 的数据类型如String、Number、Boolean、Array、Object、Date、Function、Symbol或自定义构造函数。required布尔值表示该 Prop 是否为必传项。default指定 Prop 的默认值。可以是固定值也可以是一个返回默认值的函数。validator自定义验证函数用于校验传入的 Prop 值是否有效。四、如何接受和使用 Props代码案例1. 使用 script setup 语法推荐这是 Vue3 组合式 API 中最简洁的写法。提示带有define开头的都是宏声明属性不需要引入!-- 子组件 ChildComponent.vue -- template div h3子组件/h3 p接收到的标题{{ title }}/p p接收到的数量{{ count }}/p p用户信息{{ user.name }} ({{ user.age }}岁)/p ul li v-foritem in items :keyitem{{ item }}/li /ul /div /template script setup // 使用 defineProps 宏来声明 Props const props defineProps({ // 类型 必填 title: { type: String, required: true }, // 类型 默认值 count: { type: Number, default: 0 }, // 对象类型 默认值函数 user: { type: Object, default: () ({ name: 匿名, age: 18 }) }, // 数组类型 items: { type: Array, default: () [] }, // 自定义验证器 score: { type: Number, validator: (value) { return value 0 value 100; } } }); // 在模板或逻辑中直接使用 props.title, props.count 等 console.log(props.title); /script!-- 父组件 ParentComponent.vue -- template div h2父组件/h2 ChildComponent title用户列表 :countuserCount :usercurrentUser :itemstodoList :score85 / /div /template script setup import { ref } from vue; import ChildComponent from ./ChildComponent.vue; const userCount ref(5); const currentUser ref({ name: 张三, age: 25 }); const todoList ref([学习 Vue, 写代码, 阅读文档]); /script补充数组形式的 defineProps除了使用对象形式定义 Props 外defineProps也支持简单的数组形式。defineProps 是有返回值的script setup // 数组形式仅声明属性名所有属性类型默认为任意类型 const props defineProps([title, count, user]); // 在模板中可以直接使用 console.log(props.title); // 来自父组件传递的值 console.log(props.count); /script推荐做法在正式项目中为了更好的代码健壮性和开发体验建议使用对象形式如上方示例或 TypeScript 泛型形式来定义 Props以便获得完整的类型检查和 IDE 提示。2. 使用 TypeScript 与类型标注结合 TypeScript 可以获得更完善的类型提示和检查。!-- 子组件 ChildComponent.vue -- template !-- 同上 -- /template script setup langts interface User { name: string; age: number; } // 使用接口定义 Props 类型 interface Props { title: string; count?: number; // 可选 user: User; items: string[]; score?: number; } // 使用泛型 defineProps const props definePropsProps(); // 或者提供默认值需要 withDefaults 辅助函数 const propsWithDefaults withDefaults(definePropsProps(), { count: 0, user: () ({ name: 匿名, age: 18 }), items: () [], }); /script3. 使用选项式 API这是 Vue2 风格的写法在 Vue3 中仍然兼容。!-- 子组件 ChildComponent.vue -- template !-- 同上 -- /template script export default { name: ChildComponent, // 在 props 选项中声明 props: { title: { type: String, required: true }, count: { type: Number, default: 0 }, user: { type: Object, default: () ({ name: 匿名, age: 18 }) }, items: { type: Array, default: () [] }, score: { type: Number, validator: function(value) { return value 0 value 100; } } }, setup(props) { // 在 setup 函数中访问 props console.log(props.title); return {}; } } /script五、使用 Props 的注意事项单向数据流不要在子组件内部直接修改 PropsVue 会警告。如果需要修改应该在子组件内定义一个新的响应式数据如使用ref或computed来接收 Prop 的初始值。Prop 命名在 JavaScript 中使用 camelCase如userName在模板中建议使用 kebab-case如user-name。动态与静态传递使用:绑定是动态传递响应式不使用:是静态字符串传递。复杂对象默认值对象或数组的default必须是一个工厂函数返回新对象避免多个组件实例共享同一引用。

相关新闻

reCamera HQ POE摄像头30分钟快速部署与配置全攻略

reCamera HQ POE摄像头30分钟快速部署与配置全攻略

1. 项目概述:从开箱到上线的全流程解析当你拿到一台全新的 reCamera HQ POE 时,那种混合着期待和一丝无从下手的感觉,我太熟悉了。这不仅仅是一个摄像头,更是一个集成了高清画质、POE供电和智能分析能力的专业安防节点。在过去几年…

2026/9/25 13:45:21 阅读更多 →
AI代码生成实战:从物理模拟到实时渲染的Canvas图形编程优化

AI代码生成实战:从物理模拟到实时渲染的Canvas图形编程优化

1. 从“Kimi K2.7 Code”说起:一次关于代码生成与渲染的极限测试最近在开发者圈子里,一个关于“Kimi K2.7 Code”的测试项目火了起来。这个项目听起来就很有意思,它并不是一个官方发布的版本,更像是一次社区驱动的、针对Kimi大模型…

2026/10/2 9:31:21 阅读更多 →
DS18B20温度传感器:从85度到真实温度的底层原理与STM32实战

DS18B20温度传感器:从85度到真实温度的底层原理与STM32实战

1. 从85度到真实温度:DS18B20温度换算的底层逻辑 如果你玩过单片机,尤其是Arduino或者STM32,大概率接触过DS18B20这个数字温度传感器。它价格便宜、精度尚可、接口简单,一度是DIY温控项目的首选。但很多新手,包括当年的…

2026/10/10 10:20:37 阅读更多 →

最新新闻

使用10年的日产油车,想换一辆30万左右性价比较高的纯电新能源汽车,有哪些推荐?

使用10年的日产油车,想换一辆30万左右性价比较高的纯电新能源汽车,有哪些推荐?

文章目录一、先定换车前提(决定买不买纯电)二、30万左右纯电推荐(分场景)1)家用SUV、求省心稳妥:首选Model Y、小鹏G6/G92)家用大空间、重舒适:理想i6、小米YU7、极氪7X3&#xff09…

2026/10/11 15:34:08 阅读更多 →
CodeWiki生成什么?docs目录、Mermaid架构图与模块树全解读

CodeWiki生成什么?docs目录、Mermaid架构图与模块树全解读

【免费下载链接】CodeWiki [ACL 2026] Open-source framework for holistic, structured repository-level documentation across multilingual codebases 项目地址: https://gitcode.com/gh_mirrors/co/CodeWiki 点击查看 免费下载 CodeWiki 是一个开源的 AI 代码…

2026/10/11 15:34:08 阅读更多 →
耐酸膜品牌选型参考:工业工况耐受性与膜元件形态适配

耐酸膜品牌选型参考:工业工况耐受性与膜元件形态适配

耐酸膜品牌选型参考:工业工况耐受性与膜元件形态适配 在工业高浓度废水处理项目中,酸洗废水、金属蚀刻液、矿山酸性排水等场景往往涉及复杂的腐蚀性工况。如何在强酸环境下维持膜元件的稳定运行,同时满足分离效率与使用寿命的双重需求&#x…

2026/10/11 15:34:08 阅读更多 →
编译原理实验报告:词法分析、语法分析与冲突排查实践

编译原理实验报告:词法分析、语法分析与冲突排查实践

简介:一份编译原理词法分析与语法分析实验报告,面向计算机专业本科生及考研复习者,用于系统理解编译器前端词法分析、语法分析两大核心阶段。报告从词法分析状态图设计讲起,说明如何识别标识符、关键字、十进制整数以及 - * / >…

2026/10/11 15:34:08 阅读更多 →
12代酷睿+B660M平台重启黑屏?照着这篇排查思路搞定它

12代酷睿+B660M平台重启黑屏?照着这篇排查思路搞定它

兄弟们,如果你手上正好是12代酷睿(比如12400F/12600KF这类)搭配B660M主板,再塞一张3070Ti显卡,而且症状跟标题一模一样——开机一切正常,跑分打游戏都没事,但只要一“重启”,屏幕就彻…

2026/10/11 15:34:08 阅读更多 →
粮仓温湿度控制系统选型与PID策略:从传感器到避坑实践

粮仓温湿度控制系统选型与PID策略:从传感器到避坑实践

简介:一份基于单片机的粮仓温湿度检测与控制系统设计资料,面向自动化、电子及物联网相关专业学生与工程技术人员,针对大型粮库温湿度实时监测与超限报警需求,给出了可借鉴的完整设计方案。资源为华北电力大学本科毕业设计论文&…

2026/10/11 15:33:08 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →