位置: IT常识 - 正文

vue3 中使用 props, emits 并指定其类型与默认值(vuejs props)

编辑:rootadmin
vue3 中使用 props, emits 并指定其类型与默认值 前言

推荐整理分享vue3 中使用 props, emits 并指定其类型与默认值(vuejs props),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue3中使用props,vue3 中使用draggable - web前端,vue3 中使用rsa,vue3中使用props,vue的props用法,vue3 中使用rsa,vue3中使用props,vue3 中使用draggable - web前端,内容如对您有帮助,希望把文章链接给更多的朋友!

本文主要描述 vue3 中 defineProps 与 defineEmits 分别在 JS 环境和 TS 环境中的使用方法。

defineProps 的使用

defineProps在使用的时候无需引入,默认是全局方法。

在 js 开发的 vue3 项目中使用const props = defineProps({ attr1: { type: String, // S 必须大写 default: "", }, attr2: Boolean, attr3: { type: Number, required: true, },});

js 环境中使用与 vue2 的使用方法类似,只是选项式 API 换成了组合式 API。定义 props 类型与默认值都与 vue2 类型,vue3 中使用的是definePropsAPI,在此不多介绍。

在 ts 开发的 vue3 项目中使用interface DeatilInf { aaa: string; bbb: number;}const props = withDefaults( // 参数一:定义props类型:? 代表非必传字段, :号后面紧跟的是数据类型或自定义接口, | 或多种类型 defineProps<{ name: string; age?: number; detail?: DeatilInf | any; }>(), // 参数二:指定非必传字段的默认值 { age: 18, detail: {}, });vue3 中使用 props, emits 并指定其类型与默认值(vuejs props)

使用 typeScript 开发 vue3 项目定义 props 主要使用的 API 有两个: defineProps 定义接收的 props 、withDefaults 定义接收的类型。

当然,你也可以使用上述 js 环境使用的方法定义 props,但这样做就失去了使用 TS 的意义了。

defineEmits 的使用

与 vue2 不同:vue3 在触发事件之前需要定义事件。同样在 vue3 中 defineEmits 也是全局 API

js 中使用const emits = defineEmits(["change", "input"]);emits("chage", "data");emits("input", { data: 123 });TS 中使用enum EventName { CHANGE = "change", INPUT = "input",}const emits = defineEmits<{ (event: EventName.CHANGE, data: string[]): void; (event: EventName.INPUT, data: string): void;}>();emits(EventName.CHANGE, ["data"]);emits(EventName.INPUT, "123");

上面的代码中使用了枚举 enum 避免"魔法字符串"的出现。值得一提,ts 中也可以使用 js 的方式使用,那么就没有发挥出‘T’的作用。

尤其在大型项目里面触发数据的类型可能会出现意想不到的 bug,然后定位 bug 可能得花上好几个小时。也可能会出现触发事件的事件名字符串写错(俗称魔法字符串)导致达不到预期效果。

总结

经过上述代码示例,可能觉得 ts 的写法似乎更加麻烦了,不如 js 来的快。但是,我个人认为使用 ts 开发不仅仅是提示友好,而且能有效避开很多的坑。可谓:"未雨绸缪"胜过“亡羊补牢”的好。

最后,需要这篇文有帮到你。如有谬误,不吝赐教

本文链接地址:https://www.jiuchutong.com/zhishi/294544.html 转载请保留说明!

上一篇:炫酷登录注册 完整功能版【本地存储+JS+HTML+CSS+jQuery】(炫酷登录注册教程)

下一篇:10分钟搞定win11安卓子系统(10分钟搞定3种网红小吃)

  • 苹果11来电无声音怎么回事(苹果11来电无声音是什么原因)

    苹果11来电无声音怎么回事(苹果11来电无声音是什么原因)

  • 联想lj2605d硒鼓灯亮(联想lj2605d硒鼓型号)

    联想lj2605d硒鼓灯亮(联想lj2605d硒鼓型号)

  • iphone11pro什么时候发售(iphone11pro什么时候降价)

    iphone11pro什么时候发售(iphone11pro什么时候降价)

  • qq异常登录(qq异常登录提醒哪里打开)

    qq异常登录(qq异常登录提醒哪里打开)

  • soul把对方拉黑后在广场发的瞬间他能看到吗(Soul把对方拉黑后,对方还能看到聊天记录吗)

    soul把对方拉黑后在广场发的瞬间他能看到吗(Soul把对方拉黑后,对方还能看到聊天记录吗)

  • 小爱音箱能当蓝牙音箱用吗(小爱音箱能当蓝牙遥控器用吗)

    小爱音箱能当蓝牙音箱用吗(小爱音箱能当蓝牙遥控器用吗)

  • 苹果xsmax下巴几毫米

    苹果xsmax下巴几毫米

  • 用华为手机怎么截视频(用华为手机怎么查找苹果手机的位置)

    用华为手机怎么截视频(用华为手机怎么查找苹果手机的位置)

  • word文档电脑手机显示不一样(word文档电脑手机不能同步?)

    word文档电脑手机显示不一样(word文档电脑手机不能同步?)

  • 删除评论对方能看见吗(删除对方的评论会通知对方吗)

    删除评论对方能看见吗(删除对方的评论会通知对方吗)

  • 华为m6上市时间(华为m6上市时间价格)

    华为m6上市时间(华为m6上市时间价格)

  • hsyu6e是什么网线(6类网线的标识)

    hsyu6e是什么网线(6类网线的标识)

  • 高通765和865的区别(高通765g和高通865哪个处理器好)

    高通765和865的区别(高通765g和高通865哪个处理器好)

  • 监控rtsp是什么意思(摄像机 rtsp)

    监控rtsp是什么意思(摄像机 rtsp)

  • 华为手机nfc没反应(华为手机nfc没反应怎么办)

    华为手机nfc没反应(华为手机nfc没反应怎么办)

  • ipad7th generation多少寸(ipad7thgeneration多少钱)

    ipad7th generation多少寸(ipad7thgeneration多少钱)

  • vivo安全认证怎么取消(vivo安全验证怎么取消)

    vivo安全认证怎么取消(vivo安全验证怎么取消)

  • mate30无线充电怎么用(mate30无线充电怎么充不上电)

    mate30无线充电怎么用(mate30无线充电怎么充不上电)

  • 电脑cpu温度高会爆炸吗(电脑cpu温度高会蓝屏吗)

    电脑cpu温度高会爆炸吗(电脑cpu温度高会蓝屏吗)

  • 芒果tv可以登录几个人(芒果tv可以登录几个设备)

    芒果tv可以登录几个人(芒果tv可以登录几个设备)

  • 苹果11怎么双卡(苹果11怎么双卡切换)

    苹果11怎么双卡(苹果11怎么双卡切换)

  • 抖音被拉黑还能私信吗(抖音被拉黑还能搜到对方账号吗)

    抖音被拉黑还能私信吗(抖音被拉黑还能搜到对方账号吗)

  • vue怎么用照片做视频(vue使用图片)

    vue怎么用照片做视频(vue使用图片)

  • 华为手机怎么退出盲人模式快捷键(华为手机怎么退出语音播报模式?!?)

    华为手机怎么退出盲人模式快捷键(华为手机怎么退出语音播报模式?!?)

  • 什么是爬虫(什么是爬虫代码)

    什么是爬虫(什么是爬虫代码)

  • 增值税开票软件在哪下载
  • 企业所得税亏损弥补的规定
  • 出口退税政策
  • 月工资税基是什么
  • 税务登记证号是纳税人识别号吗?
  • 毛利率在餐饮中表示什么意思?
  • 个人所得税减除费用6万元什么意思
  • 转让不动产取得的收入
  • 2019新租赁准则账务处理举例
  • 公司出售固定资产
  • 自己可以缴纳社保吗
  • 免息分期怎么还款
  • 购入的固定资产
  • 住宿费餐费怎么做分录
  • 企业所得税减免税额包括哪些
  • 跨月负数发票会计分录
  • 运输发票抵税多少个点
  • 土地增值税纳税地点
  • 房地产开发企业资质管理规定
  • 小规模纳税人 核定
  • 营养成分表的计算表
  • 净利润和毛利润的计算公式
  • 企业会计准则制度
  • 年初未交增值税借方怎么处理
  • 企业已确认销售收入的售出商品发生销售折让,且不属于
  • 公司租赁的办公室装修费用可以抵进项税吗
  • win7硬盘安装win10教程
  • 无法删除文件提示怎么办
  • 在当前目录下打开cmd
  • 鸿蒙系统小艺怎么改声音
  • 资产购置融资
  • dcc是什么文件
  • 小规模核定征收突然转查账
  • 工资储备金制度
  • laravel elementui
  • 公司盈利怎么分配给股东
  • laravel怎么用
  • 自己买材料自己装修
  • 浅谈socket同步和异步、阻塞和非阻塞、I/O模型
  • go语言入门指南
  • 先开发票还是先收钱
  • 外汇核销是什么意思
  • cms是前端还是后端
  • phpcms 用的是什么模板引擎
  • 社保费用如何入现金流量表
  • 股东增资涉税
  • 政府会计资产的概念
  • SqlServer2012中First_Value函数简单分析
  • sql2008还原到2012
  • sql中判断函数
  • 企业年度所得税怎么算
  • 公司卖出货物没有发票
  • 工会经费计提基数包括奖金吗
  • 坏账准备的核算
  • 长期待摊费用多少金额
  • 工程款抵房款什么意思
  • 实收资本的印花税什么时候申报
  • 工程材料如何管理
  • 法人存入公户的钱摘要
  • 金税盘买发票还要填交验旧表吗?
  • 主营业务利润率反映了企业的什么能力
  • 公司初建账都有什么账
  • 安装mysql提示one or more
  • XP系统无法安装软件
  • fedora修改ip地址
  • Windows任务栏中的活动程序间不能切换对吗
  • 东芝笔记本图片及型号
  • win7怎么随便放桌面图标
  • js函数详解
  • 深入linux内核架构与底层原理 pdf
  • 网页制作颜色搭配
  • 基于nodejs的项目
  • 深入理解javascript特性.pdf
  • Re: Latest Version: 3.7.9 (January 18th, 2015)
  • jquery 列表控件
  • 美国消费比例
  • 车辆保险开增值税吗
  • 国税商品分类目录
  • 重庆职高学校推荐
  • 贵州省税务局领导介绍
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设