位置: 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种网红小吃)

  • p40pro微距如何拍(p40p怎么拍微距)

    p40pro微距如何拍(p40p怎么拍微距)

  • 设备或资源dns没检测到有响应 网络无法连接(设备或资源dns没有怎么办)

    设备或资源dns没检测到有响应 网络无法连接(设备或资源dns没有怎么办)

  • 闲鱼怎么开通消费者保障服务(闲鱼怎么开通消费者权益)

    闲鱼怎么开通消费者保障服务(闲鱼怎么开通消费者权益)

  • Word字体加黑怎么设置(word字体怎么加黑)

    Word字体加黑怎么设置(word字体怎么加黑)

  • word预览在哪里(word里面预览在哪里)

    word预览在哪里(word里面预览在哪里)

  • 手机链接打印机字体怎么调(怎么手机链接打印机)

    手机链接打印机字体怎么调(怎么手机链接打印机)

  • oppoa5来电屏幕不亮怎么解决(oppoa5来电屏幕不亮设置)

    oppoa5来电屏幕不亮怎么解决(oppoa5来电屏幕不亮设置)

  • 安卓微信有HD版本吗(微信hd apk)

    安卓微信有HD版本吗(微信hd apk)

  • 苹果11wifi连上用不了是什么原因(苹果11连着wifi不能用)

    苹果11wifi连上用不了是什么原因(苹果11连着wifi不能用)

  • iphone8背景虚化怎么拍(苹果8背景虚化)

    iphone8背景虚化怎么拍(苹果8背景虚化)

  • 微信风控是什么原因(微信风控是什么意思2023年2月份微信风控吗)

    微信风控是什么原因(微信风控是什么意思2023年2月份微信风控吗)

  • 荣耀9x有暗黑模式吗(荣耀9x的深色模式在哪)

    荣耀9x有暗黑模式吗(荣耀9x的深色模式在哪)

  • 电脑一键锁屏快捷键(怎么一健锁屏电脑)

    电脑一键锁屏快捷键(怎么一健锁屏电脑)

  • 图形图像属于什么媒体(图形图像属于什么专业类别)

    图形图像属于什么媒体(图形图像属于什么专业类别)

  • 苹果手机lr是什么(苹果手机l/a是什么意思)

    苹果手机lr是什么(苹果手机l/a是什么意思)

  • vivo高德地图怎么横屏(vivo高德地图怎么录制自己的声音)

    vivo高德地图怎么横屏(vivo高德地图怎么录制自己的声音)

  • 多闪怎样查看谁看过我(多闪怎么知道对方把我拉黑了)

    多闪怎样查看谁看过我(多闪怎么知道对方把我拉黑了)

  • 苹果x屏幕分辨率(苹果x的屏幕分辨率在哪里查看)

    苹果x屏幕分辨率(苹果x的屏幕分辨率在哪里查看)

  • 怎么清理苹果喇叭灰尘(怎么清理苹果喇叭声音)

    怎么清理苹果喇叭灰尘(怎么清理苹果喇叭声音)

  • cpu坏和主板坏怎么判断(cpu坏和主板坏怎么判断-ZOL问答)

    cpu坏和主板坏怎么判断(cpu坏和主板坏怎么判断-ZOL问答)

  • mybatis#和$的区别(mybatis and)

    mybatis#和$的区别(mybatis and)

  • 华为jkmal00是什么型号(华为jkmal00a是什么型号手机)

    华为jkmal00是什么型号(华为jkmal00a是什么型号手机)

  • 苹果手机充电颜色变黄是怎么回事(苹果手机充电颜色变黄)

    苹果手机充电颜色变黄是怎么回事(苹果手机充电颜色变黄)

  • vivoz5x可以插内存卡吗(vivoz5x支持内存卡扩展吗)

    vivoz5x可以插内存卡吗(vivoz5x支持内存卡扩展吗)

  • Linux系统下无法访问mysql解决方法(linux用不了yum)

    Linux系统下无法访问mysql解决方法(linux用不了yum)

  • Python中的进程池是什么(python 进程管理)

    Python中的进程池是什么(python 进程管理)

  • 中国税收居民判定标准
  • 个人所得税如何查询工资
  • 个体户怎么开增值税普通发票过程
  • 一次性收取加盟费 所得税
  • 个人劳务费的免税政策
  • 增值税税差怎么算
  • 海关进口增值税专用缴款书如何抵扣
  • 工资3700扣多少社保钱
  • 眼镜所属行业怎么填写
  • 银行打出的明细清单怎么看不懂
  • 发行债券的会计要素
  • 购买展示样品怎么入账
  • 转售水的税率
  • 银行存款日记账最后一行怎么填
  • 小规模转为一般纳税人最新规定
  • 食用盐适用的增值税税率
  • 哪些情形可以补胎
  • 非营利组织免税收入孳生的银行存款利息
  • win10如何查看显卡版本
  • 存贷款利率计算器
  • wordpress访客记录怎么看
  • 客户申请退款商家拒绝退货退款会有什么效果
  • 我告诉你win7旗舰版
  • 无形资产投资后退出
  • 理财的利息收入计入什么科目
  • 税法工资薪金总额
  • php代码大全及其含义
  • centos 安装php
  • php分层
  • 固定资产闲置能报废吗
  • 漫天花雨异闻
  • 93.transformer、多头注意力以及代码实现
  • 神经网络浅讲
  • 场外期权怎么交税
  • 深究Python中的asyncio库-线程池
  • php使用while循环计算1到100的和
  • 公司注销实收资本退回需要交税吗
  • 代收代缴水费可以加多少损耗
  • 财务费用利息收入为什么是借方负数
  • 工会经费按应发还是实发缴纳
  • 不动产租赁需要资质吗
  • 椅子能放进后备箱吗
  • 明细账示例
  • 税控服务费减免月底怎样结转
  • 律师事务所的所属行业是什么
  • 存货价值的计算公式
  • 法院拍卖土地原欠税怎么办
  • 不开发票的收入如何申报纳税?
  • 账本结转下年怎么划线
  • 车票抵扣填在申请表哪里
  • 报税中反写是什么意思
  • 残保金是交上一年的吗
  • 一些有用的sql语句是什么
  • Win10一键永久激活数字工具
  • win10预览版选哪个
  • 怎样备份微信聊天记录到新手机
  • solaris8下载
  • 登录远程linux系统可以用的方法
  • win8的安全中心
  • win10专业版系统安装教程
  • win7彻底删除的文件怎么恢复
  • win8关机慢怎么办
  • win10系统怎么设置屏幕
  • 列举linux常用的几个命令
  • cocos2dx lua android glsurfaceview 截图
  • unity特效制作教程
  • jquery时间轴插件
  • linux什么是二进制文件
  • 同一内容复制到多个单元格
  • dos中创建文件
  • js操作属性的方法
  • document对象常用方法
  • 聊天界面的新消息通知设置 找不到
  • c#委托实现的步骤
  • js兼容ie
  • python bilt
  • 百旺数据恢复
  • 宿州税务总局
  • 单位首次交社保医疗要多久才能享受
  • 如何查公司税务问题
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设