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

Vue 3 的 <script setup> 语法糖(持续更新)

Vue 3 的

Vue3的语法糖有很多,目前在不断写些前端的代码,我写到哪儿就总结到哪儿吧!

1、defineProps

  • defineProps 是一个用来定义组件 props 的函数。Props 是父组件向子组件传递数据的一种机制,借助 props,父组件能把数据传递给子组件,让子组件使用这些数据进行渲染或者逻辑处理。

例如,子组件中的代码如下

const props = defineProps({orderType: {type: String,default: 'order_self_drive',},orderNo: String,code: String,
})
  • defineProps:这是 Vue 3 提供的一个 API,用于在script setup 语法糖中定义组件的 props。它接收一个对象作为参数,该对象描述了组件期望接收的 props。
  • orderType:定义了一个名为 orderType 的 prop。
    • type: String:指定 orderType 的类型为字符串。Vue 会在运行时对传入的 orderType 值进行类型检查,若类型不匹配会给出警告。
    • default: ‘order_self_drive’:设置 orderType 的默认值为 ‘order_self_drive’。当父组件没有传递 orderType 时,子组件会使用这个默认值。
  • orderNo:定义了一个名为 orderNo 的 prop,类型为字符串。这里使用了简写形式,等同于 { type: String }。由于没有设置 default 属性,若父组件没有传递 orderNo,其值为 undefined。
  • code:定义了一个名为 code 的 prop,类型为字符串,同样是简写形式。若父组件未传递 code,其值为 undefined。

父组件代码

<SelfDriveInfo 
v-else-if="item.orderType === 'order_self_drive'" 
ref="bizFormRef" 
:order-type="item.orderType" 
:order-no="orderNo" 
:code="item.code" />
  • 属性传递:父组件 register.vue 给子组件传递了三个属性:
    :order-type:对应子组件里 defineProps 中的 orderType。
    :order-no:对应子组件里 defineProps 中的 orderNo。
    :code:对应子组件里 defineProps 中的 code。
Tips: 有人问为啥不把属性对应上?
  • 虽然直接写 :orderType=“item.orderType” 在 Vue 3 的单文件组件中可能可行,但为了保证代码的兼容性和遵循 HTML 规范,推荐使用 kebab-case 命名 :order-type 来传递属性,这样能确保父组件和子组件之间的 props 正确匹配。
总结

defineProps 让组件能明确声明它期望从父组件接收的 props,并且能对这些 props 进行类型检查和设置默认值。这样能提高组件的可维护性和健壮性,让父组件和子组件之间的数据传递更加清晰和安全。

http://www.xdnf.cn/news/9471.html

相关文章:

  • 尚硅谷redis7 58-62 主从复制之一主二仆
  • 【前端】JS引擎 v.s. 正则表达式引擎
  • 创建型设计模式之Singleton(单例)设计模式
  • 力扣热题100(附刷题表版)
  • 【西方哲学-0】西哲思维导图mermaid格式
  • 离线场景下扫描与修复系统缺失补丁解决方案
  • 【计算机网络】第1章:概述—协议层次及服务模型
  • 网络安全之XSS漏洞
  • Unity屏幕适配——适配信息计算和安全区域适配
  • 触控精灵 ADB运行模式填写电脑端IP教程
  • 九、【前后端联调篇】Vue3 + Axios 异步通信实战
  • ​​知识图谱:重构认知的智能革命​
  • 安世亚太:信息化和数字化的底层逻辑
  • Ansible模块——Ansible配置文件!
  • 3D建模的全景图谱:从55个工具到元宇宙的数字革命
  • C++中,`friend`关键字的使用
  • 【数据分析】Matplotlib+Pandas+Seaborn绘图
  • 玻纤效应的时序偏差
  • 大模型本地部署
  • 内网穿透,代理服务,NAT
  • HTTP Accept简介
  • 鸿蒙---使用真机模拟器的时候,图片不加载问题
  • NV295NV306美光固态闪存NV313NW830
  • 决胜2025:企业级BI产品深度评测与选型指南
  • vue+elementUi+axios实现分页(MyBatis、Servlet)
  • Linux进程调度的理解
  • Web攻防-SQL注入增删改查HTTP头UAXFFRefererCookie无回显报错
  • Redis集群热点Key问题解决方案
  • 通过mailto:实现web/html邮件模板唤起新建邮件并填写内容
  • LabVIEW双光子荧光成像软件开发