技术文摘
Vue3 中如何使用 props 和 emits 并指定类型与默认值
在Vue 3开发中,props和emits是组件通信的重要方式,合理使用它们并指定类型与默认值,能提升代码的可读性和稳定性。
首先来看看props。props用于父组件向子组件传递数据。在定义props时,可以通过多种方式指定类型。例如,基本类型定义如下:
<script setup>
const props = defineProps({
// 字符串类型
title: String,
// 数字类型
count: Number,
// 布尔类型
isVisible: Boolean
});
</script>
上述代码中,title被定义为字符串类型,count为数字类型,isVisible为布尔类型。如果父组件传递的数据类型不符合定义,Vue会在开发环境下给出警告。
除了基本类型,还可以使用对象来详细定义props。比如:
<script setup>
const props = defineProps({
name: {
type: String,
required: true,
default: 'default name'
},
age: {
type: Number,
default: 18
}
});
</script>
这里name属性被设置为必传,同时提供了默认值。当父组件没有传递name时,就会使用默认值“default name”。而age属性定义为数字类型并设置了默认值18。
接着讲讲emits。emits用于子组件向父组件发送事件。同样可以对其进行类型定义。例如:
<script setup>
const emits = defineEmits(['itemSelected']);
const handleClick = () => {
emits('itemSelected', 'selected value');
};
</script>
在这个例子中,子组件定义了一个名为itemSelected的自定义事件,当handleClick函数被调用时,就会触发该事件并传递一个值“selected value”。
为了让代码更加规范,还可以使用类型别名或接口来定义props和emits的类型。例如:
// 定义props类型接口
interface Props {
message: string;
num: number;
}
// 定义emits类型
type Emits = {
(e: 'customEvent', value: string): void;
};
<script setup lang="ts">
const props = defineProps<Props>();
const emits = defineEmits<Emits>();
</script>
通过这种方式,代码的类型更加清晰明确。
在Vue 3中合理使用props和emits,并准确指定类型与默认值,不仅能增强代码的可维护性,还能提高开发效率,让项目的结构更加清晰。无论是小型项目还是大型企业级应用,这些技巧都是非常实用的。
TAGS: Vue3_Props Vue3_emits Vue3属性传递 Vue3事件触发
- 服务化后耦合竟更严重?
- 无需@微信团队,我用 Python 给自己戴上圣诞帽!
- MQ——互联网架构的解耦法宝
- 为何部分程序员悄然度过 35 岁中年危机
- 服务读写分离(读服务与写服务)的可行性探讨
- 一分钟知晓“好”接口的设计及实现
- WebGL 与 Three.js 工作原理图解
- 途牛被指裁员 400 名研发人员 业界惊呼遭血洗
- 华为员工自爆百万年终奖并于论坛征女友
- 腾讯全链路日志监控平台:日存储量超 10TB 面临的海量数据挑战实践
- 5 款超酷的 Python 工具
- 2018 年你仍需学习 JavaScript,不开玩笑
- JetBrains 以 Kotlin 布局深远
- Go 语言成为 DevOps 时代的理想编程语言,JS 退位
- 大数据揭示:2018 年应学习的技术