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

  • 华为p40支持无线充电吗(华为P40支持无线充电的手机)

    华为p40支持无线充电吗(华为P40支持无线充电的手机)

  • oppofindx2pro支持3D结构光吗(oppofindx2pro支持多少w快充)

    oppofindx2pro支持3D结构光吗(oppofindx2pro支持多少w快充)

  • 抖音观看量怎么计算的(抖音观看量怎么赚钱)

    抖音观看量怎么计算的(抖音观看量怎么赚钱)

  • 华为askaloox这个型号(华为askaloox怎么设置隐藏空间)

    华为askaloox这个型号(华为askaloox怎么设置隐藏空间)

  • applepencil蓝牙连不上(applepencil2蓝牙连不上)

    applepencil蓝牙连不上(applepencil2蓝牙连不上)

  • 华为p40飞行模式在哪里(华为p40飞行模式在哪里设置)

    华为p40飞行模式在哪里(华为p40飞行模式在哪里设置)

  • spk/mic插在主板哪里(speaker插主板哪个接口)

    spk/mic插在主板哪里(speaker插主板哪个接口)

  • 苹果8手机多长(苹果手机8)

    苹果8手机多长(苹果手机8)

  • 苹果11pro第一次充电多久(苹果11pro第一次开机与激活指南)

    苹果11pro第一次充电多久(苹果11pro第一次开机与激活指南)

  • 手机相册图片怎么涂鸦(手机相册图片怎么上传到电脑)

    手机相册图片怎么涂鸦(手机相册图片怎么上传到电脑)

  • qq里面隐藏会话怎么解除(qq隐藏会话)

    qq里面隐藏会话怎么解除(qq隐藏会话)

  • 封面上的横线怎么弄(封面上的横线怎么设置)

    封面上的横线怎么弄(封面上的横线怎么设置)

  • 骁龙855能更新成5G吗(骁龙855还能用)

    骁龙855能更新成5G吗(骁龙855还能用)

  • 华为荣耀20i怎么长截屏(华为荣耀20i怎么拆后盖)

    华为荣耀20i怎么长截屏(华为荣耀20i怎么拆后盖)

  • 控制面板窗口是什么(控制面板主要作用调整窗口)

    控制面板窗口是什么(控制面板主要作用调整窗口)

  • 手机软件图标怎么换(手机软件图标怎么恢复到原来设置)

    手机软件图标怎么换(手机软件图标怎么恢复到原来设置)

  • 嘀嗒永久封号能解吗(嘀嗒被永久封禁咋整)

    嘀嗒永久封号能解吗(嘀嗒被永久封禁咋整)

  • 抖音录一半怎么换音乐(抖音录一段然后再接下一段怎么录)

    抖音录一半怎么换音乐(抖音录一段然后再接下一段怎么录)

  • ios13怎么关闭长按(苹果13长按屏幕时长怎么设置)

    ios13怎么关闭长按(苹果13长按屏幕时长怎么设置)

  • word文档表格调整增加一行(word文档表格调整行高后,文字不见了)

    word文档表格调整增加一行(word文档表格调整行高后,文字不见了)

  • 叨叨记账怎么设置明星(叨叨记账怎么设置读者名字)

    叨叨记账怎么设置明星(叨叨记账怎么设置读者名字)

  • 关于uni-app中uni-forms表单验证时“多级结构对象数据”如何做数据校验的解决方案(uni-app实例教程)

    关于uni-app中uni-forms表单验证时“多级结构对象数据”如何做数据校验的解决方案(uni-app实例教程)

  • TypeScript和JavaScript的区别,全面解读超详细(typescript和javascript那个更高级)

    TypeScript和JavaScript的区别,全面解读超详细(typescript和javascript那个更高级)

  • 企业为职工提供无偿服务
  • 所得税费用的计提
  • 发票上税额加不上怎么办
  • 普通发票的税率1%
  • 未开票收入如何红冲
  • 支付客户劳务费怎么操作
  • 汇算退回的所得税分录
  • 收企业利息如何做账
  • 停车费定额发票税率
  • 费用化的研发支出
  • 装载机折旧年限是几年
  • 打印社保缴费凭证需要什么证件
  • 在银行购买支票需要什么手续
  • 免税的开成有税率的怎么办
  • 罚款收据与通用的区别
  • 税收的六大作用
  • 担保费能抵扣吗
  • 金融负债
  • 银行如何做存款
  • 长期应付款预算会计
  • 酒店租金计入什么会计科目
  • 软件 企业
  • 这个月没有进项开了发票可怎么办
  • 小微企业核定征收所得税税率
  • 实收资本是否可以更改
  • 单位低价向职工售房个人所得税计算
  • 华为鸿蒙系统如何刷机
  • virtualbox打不开虚拟机
  • 宽带测速器在线测速
  • 微信支付宝收款码二合一
  • 如何解决win7系统不稳定
  • php中const
  • dcs是什么文件夹可以删除吗
  • 一般纳税人企业所得税税率多少
  • 微软即将终止当前系统版本
  • windows7中可以设置控制计算机
  • 如何使用微信公交付款
  • 套期工具的会计分录
  • 交易性金融资产的账务处理
  • github ci/cd
  • 使用ChatGPT进行AI对话
  • 子公司减资母公司怎么算
  • 税务稽查补税
  • python gitpython
  • 差额冲账法
  • 合营企业和联营企业的概念
  • mysql配置文件my.ini如何创建
  • 销售退货会计分录
  • 项目清算后未售房产怎么纳税
  • 企业接受捐赠如何确认收入
  • 未开票收入转为开票收入
  • 待抵扣进项税额和待认证进项税额的区别
  • 专利权转让的条件
  • 调整以前年度的费用怎么做
  • 在sql server中使用对象资源管理器和SQL
  • mysql使用的协议
  • mac如何取消自动开机
  • 方正电脑升级
  • ubuntu怎样
  • 进程audiodg.exe
  • win1020h2版好不好
  • Win7系统桌面图标变小
  • 双系统如何迁移到固态硬盘
  • Win10 Mobile 14342.1004快速预览版更新 提升电池续航
  • win8启动设置选哪个
  • Android自定义对话框
  • cocos2dx-js
  • 动态加载dll错误
  • node创建服务
  • unity转盘游戏
  • unity音乐thefatrat
  • js实现隔行换色
  • python操作word文档替换文字
  • EasyUI Pagination 分页的两种做法小结
  • python魔法方法有啥用
  • 个人土地建房
  • 房产营业税满2年怎么算
  • 小规模年度财务报表
  • 个人股权转让是否增值了怎么判断
  • 北京国税查询发票真伪查询系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设