vue3如何定义props
时间: 2025-07-31 21:48:48 浏览: 3
### 定义 Vue 3 组件中的 Props
在 Vue 3 中,定义组件的 `props` 是组件间通信的核心机制之一。开发者可以通过 `defineProps` 函数在 `<script setup>` 语法中声明组件接收的属性,并结合 TypeScript 实现类型安全的属性定义。
#### 声明 Props 的方式
Vue 3 提供了多种方式定义组件的 `props`,开发者可以根据具体需求选择合适的方法:
1. **仅接收属性名**
这是最基础的定义方式,仅声明组件接收的属性名称,不进行类型检查。
```ts
const props = defineProps(['list'])
```
2. **接收并限制类型**
通过泛型语法结合 TypeScript 接口或类型,可以对传入的 `props` 进行类型约束,提高类型安全性。
```ts
defineProps<{ list: PersonInter[] }>()
```
3. **接收、限制类型、指定默认值和必要性**
使用 `withDefaults` 函数可以在定义 `props` 时提供默认值,并控制某些属性是否为可选。
```ts
let props = withDefaults(defineProps<{ list?: PersonInter[] }>(), {
list: () => [{ id: 'asdasg01', name: '小猪佩奇', age: 18 }]
})
console.log(props)
```
上述代码展示了如何在 Vue 3 的 `<script setup>` 中定义一个可选的 `list` 属性,并为其指定默认值[^2]。
#### Props 的使用与传递
在模板中,可以直接通过 `props` 对象访问传入的属性值。例如,在 `v-for` 中遍历 `props.list`,渲染列表内容:
```vue
<template>
<div class="person">
<ul>
<li v-for="item in list" :key="item.id">
{{ item.name }}--{{ item.age }}
</li>
</ul>
</div>
</template>
```
父组件在使用该组件时,通过绑定属性传递数据:
```vue
<Person :list="peopleList" />
```
这种方式确保了组件间的数据传递清晰、可控,并且结合 TypeScript 可以实现良好的类型推导和开发体验。
---
###
阅读全文
相关推荐



















