news 2026/6/23 4:40:48

VUE3:深入浅出defineProps 的 default 写法差异

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VUE3:深入浅出defineProps 的 default 写法差异

为什么有不同的写法?

这是 Vue 的设计约定:

  • 基本类型(String, Number, Boolean):直接写默认值
  • 引用类型(Object, Array, Function):必须用工厂函数返回默认值

为什么引用类型要用函数?因为如果直接写对象,所有组件实例会共享同一个对象引用,修改一个会影响所有组件!用函数每次返回一个新对象,就不会互相影响了。

完整示例

<template> <div class="props-demo"> <h2>defineProps Default 写法示例</h2> <p>姓名: {{ name }}</p> <p>年龄: {{ age }}</p> <p>是否激活: {{ isActive }}</p> <p>用户信息: {{ userInfo.nickname }} - {{ userInfo.level }}</p> <p>标签列表: {{ tags.join(', ') }}</p> <p>格式化金额: {{ formatPrice(100) }}</p> </div> </template> <script setup> // ======================================== // defineProps 的 default 写法详解 // ======================================== const props = defineProps({ // ========== 基本类型:直接写默认值 ========== // String 类型 name: { type: String, default: '游客' // ✅ 直接写字符串 }, // Number 类型 age: { type: Number, default: 18 // ✅ 直接写数字 }, // Boolean 类型 isActive: { type: Boolean, default: false // ✅ 直接写布尔值 }, // ========== 引用类型:必须用工厂函数 ========== // Object 类型 - 必须用函数返回! userInfo: { type: Object, // ❌ 错误写法:default: { nickname: '匿名', level: 1 } // ✅ 正确写法:用函数返回对象 default: () => ({ nickname: '匿名', level: 1 }) // 或者写成: // default() { // return { nickname: '匿名', level: 1 } // } }, // Array 类型 - 必须用函数返回! tags: { type: Array, // ❌ 错误写法:default: ['默认标签'] // ✅ 正确写法: default: () => ['默认标签'] }, // Function 类型 - 比较特殊 formatPrice: { type: Function, // 函数类型的默认值,直接写函数即可 default: (price) => `¥${price.toFixed(2)}` } }) // 使用 props console.log(props.name, props.age) </script>

总结:

基本类型string、number、Boolean

直接写值:

default:'默认文字'

default:0

default:false

引用类型Object、Array

用工厂函数:

default: ( ) => ({key: value })

default: ( ) => [item1,item2]

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 17:49:32

Molecular Operating Environment (MOE) 完整安装与配置指南

Molecular Operating Environment (MOE) 完整安装与配置指南 【免费下载链接】最新MolecularOperatingEnvironmentMOELinuxWindows下载指南 最新 Molecular Operating Environment (MOE) Linux Windows 下载指南本仓库提供最新版本的 Molecular Operating Environment (MOE) 软…

作者头像 李华
网站建设 2026/6/23 17:48:32

LobeChat能否用于生成直播话术?电商主播提词器

LobeChat 能否成为电商主播的“隐形军师”&#xff1f;用 AI 构建智能提词器 在杭州的一间小型直播间里&#xff0c;一位刚入行的主播正对着镜头介绍一款新上市的电动牙刷。她语速略快&#xff0c;眼神有些飘忽——不是因为紧张&#xff0c;而是她的视线始终落在面前那块不断滚…

作者头像 李华
网站建设 2026/6/23 6:50:35

终极C++网络编程:构建高性能HTTP服务的完整指南

终极C网络编程&#xff1a;构建高性能HTTP服务的完整指南 【免费下载链接】cpp-httplib A C header-only HTTP/HTTPS server and client library 项目地址: https://gitcode.com/GitHub_Trending/cp/cpp-httplib 在现代网络应用开发中&#xff0c;性能瓶颈常常成为制约系…

作者头像 李华
网站建设 2026/6/23 2:01:11

显卡驱动终极清理指南:一键彻底解决兼容性问题

显卡驱动终极清理指南&#xff1a;一键彻底解决兼容性问题 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstaller 当…

作者头像 李华
网站建设 2026/6/23 12:09:45

Zotero GPT:用AI重新定义文献管理效率

Zotero GPT&#xff1a;用AI重新定义文献管理效率 【免费下载链接】zotero-gpt GPT Meet Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-gpt 还在为文献管理效率低下而苦恼吗&#xff1f;每天面对堆积如山的学术论文&#xff0c;传统的手工分类和标签管理…

作者头像 李华
网站建设 2026/6/23 10:50:59

LobeChat与LangChain结合应用:打造复杂AI工作流

LobeChat与LangChain结合应用&#xff1a;打造复杂AI工作流 在今天的AI开发实践中&#xff0c;一个常见的尴尬局面是&#xff1a;后端模型能力强大&#xff0c;却困于简陋的交互界面&#xff1b;而前端体验流畅的应用&#xff0c;又往往只能做些“你好”“再见”式的浅层问答。…

作者头像 李华