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

  • 境外向国内汇款几天到账
  • 零售环节征收消费税标准
  • 增值税以物易物税收政策
  • 企业所得税减免所得税额怎么算
  • 发票作废后对方不退回抵扣联怎么办
  • 补缴所得税的账务处理
  • 个税里任职受雇从业类型
  • 简易征收类型
  • 企业走账的会计处理
  • 红字发票科目入进项税额还是进项税额转出
  • 补提折旧调整分录
  • 政府补贴装修费怎么算
  • 为什么要抵消损益
  • 餐饮企业卖套餐赠送单品要交增值税吗?
  • 低值易耗品进项税额转出账务处理
  • 印花税季度报还是月报
  • 投资者减除费用可以填0吗
  • 应收账款减值准备计提比例
  • 怎么确认权益性投资收益收入?
  • 公司负担劳务费的个税如何做分录
  • 1697507882
  • 工资税金算法
  • 有产能无产量
  • 结转完工产品成本的计算
  • 盈余公积转增实收资本要交税吗
  • 火车票进项税在哪里认证
  • win11系统的电脑中拷贝到U盘中的文件没有了怎么解决
  • 水利基金返还分录怎么写
  • thinkphp获取数据库数据
  • 公司专柜样品如何做
  • 检验费用会计分录
  • 增值税专用发票抵扣期限
  • node-gyp版本
  • 如何清理电脑浏览器
  • 个人独资企业如何做账
  • 缺陷修饰
  • uname命令详解
  • pwcorr_a命令
  • 软件企业高新技术产品证明材料
  • 存货毁损计入什么科目
  • 制药企业客户退货流程
  • 开了红字发票申请还要做进项税转出吗
  • 财务报表中的应收款项包括哪些
  • 织梦怎么调用当前栏目下的文章
  • 织梦网站怎么添加关键词
  • 支付个人赔偿款要交税吗
  • 技术服务型公司如何做账务处理
  • 发票开具内容与实际经营范围不符是否合适呢?
  • 企业申请进出口权经营范围
  • 不抵扣勾选有什么风险
  • 现代服务税目包括哪些具体分类
  • Table ‘xxx’ is marked as crashed and should be repaired 错误解决方法参考
  • oracle 删除用户下所有表
  • 现金流量表里支付的各项税费包括什么
  • 退物业费如何记帐
  • 国债逆回购收益什么时候到账
  • 母子公司往来款属于借款吗
  • 固定资产抵扣影响税负
  • 职工体检可以从工会经费支出
  • sql解析原理
  • sql server 触发器
  • 简单谈谈设计与市场的关系
  • 戴尔电脑u盘快速启动
  • centos7修改文件内容
  • win7取消ch
  • 命令行批量重命名
  • shell中创建文件
  • android:PopupWindow的使用场景和注意事项
  • g8a1
  • jquery制作下拉菜单
  • 批处理打开网络连接
  • 抽奖小程序模板
  • javascript怎么学
  • 河南省低保查询官网
  • 税控普通发票
  • 水利建设基金如何计提
  • 生产企业出口退税退的是哪部分的税
  • 纳税人有什么影响
  • 2020年小规模纳税人普票免税政策
  • 社保每个月都要交吗,不交了会怎么样
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设