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

  • 公司房产税如何
  • 哪些东西要征收消费税
  • 哪些单位须执行国家政策
  • 零申报公司注销麻烦吗
  • 企业净利率多少算正常
  • 企业年金是否缴税
  • 市内打车费计入差旅费吗
  • 租赁财产的残值处理
  • 个人独资企业有章程没有
  • 土地增值税预征管理办法
  • 已认证抵扣的发票如何红字信息表
  • 发给职工的福利要交个税吗
  • 变更许可证情况说明书模板
  • 股份支付为什么计入资本公积?
  • 投资性房地产收入属于什么收入
  • 电子税票号码是那个
  • 税局代增值税专用发票 需要带什么
  • 固定资产盘亏盘盈账务处理
  • 土地增值税加计5%扣除年限
  • 报销误餐费会计怎么做账
  • 修理厂年收入
  • apple ID怎么解绑设备
  • 怎么用苹果6splus
  • 所有者权益变动表范本
  • 超市一般纳税人账务处理
  • 赠与合同公证收费标准
  • php网页爬虫
  • 会计科目在建工程包括哪些
  • 利息股息红利所得属于综合所得吗
  • PHP:Memcached::getStats()的用法_Memcached类
  • 白兰花的养殖方法和注意事项和病虫害
  • 盘亏固定资产累计折旧
  • 记载资金的账簿印花税的税率是多少
  • 委托贷款会计处理流程
  • 公众号 企业
  • 增值税收范围
  • 残保金怎么计算公式
  • trainer 平替
  • 关于眼中的世界的作文
  • php实现当前页面的快捷键
  • 收到工程款怎么做凭证
  • 贷款和应收款项属于金融资产吗
  • 职工薪酬在利润表哪里看
  • 固定资产租赁费属于什么费用
  • 房地产土地使用权计入存货吗
  • 钢筋增值税专票几个点
  • 企业开办期间费用需要开发票吗
  • 通过SQLServer 2008 操作 MySQL的方法
  • 个体户怎么申请电子营业执照
  • 纳税人的进项税额怎么算
  • sqlserver2008默认实例
  • 物业公司收的停车费做什么科目
  • 什么叫同级财政收支
  • 我国的税种及税率
  • 公司向股东个人借款怎么做账
  • 民办非企业单位免税
  • 装修公司开劳务费怎么选择税控编码
  • 商品流通的企业
  • win7系统如何打开
  • win8装机软件
  • macbook调节音量怎么没反应
  • debian和ubuntu server
  • linux程序死机
  • mac上的
  • gb4.exe
  • win8怎么添加桌面
  • vps可以安装虚拟机吗
  • linuxu
  • linux012
  • webpack中CommonsChunkPlugin详细教程(小结)
  • unity画面效果润色
  • node 删除文件
  • nodejs mocha
  • dos测试网络连接
  • unity怎么导入3d模型
  • 调试动态加载的js
  • android pipepline
  • 国税发票真伪查询手机怎么查
  • 买高档手表
  • 增值税专用发票和普通发票的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设