기술나눔

Typescript Vue3의 DefineProps는 매개변수를 수신하고 withDefaults로 기본값을 설정합니다.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. 정의Props: 수신상위 구성 요소전달된 매개변수

2. withDefaults: 수신 시기본값 설정

이 두 API는 도입할 필요가 없으며 설정에서 직접 사용할 수 있습니다.

1. person.vue는 매개변수를 받습니다.

  1. <script setup lang="ts">
  2. import type {Persons} from '@/types'
  3. // 接收list + 可不传
  4. defineProps(["list"])
  5. // 接收list + 限制类型 + 必传
  6. defineProps<{list:Persons}>()
  7. // 接收list + 限制类型 + 设置默认值 + 可不传
  8. withDefaults(defineProps<{list:Persons}>(),{
  9. // 数组类型必须使用函数返回,其它不用
  10. list:()=>[{name: '张三',age: 18,id:"adwa1234"}]
  11. })
  12. // 将Props收到的值保存起来,是一个对象
  13. let propsData = defineProps(["persons"])
  14. console.log(propsData.list);
  15. </script>

2. App.vue가 매개변수를 전달합니다.

  1. <script lang="ts" setup>
  2. let persons = [{
  3. name: '张三',
  4. age: 18,
  5. id:"adwa1234"
  6. }, {
  7. name: '李四',
  8. age: 20,
  9. id:"afehgr48"
  10. }, {
  11. name: '王五',
  12. age: 22,
  13. id:"imugk84"
  14. }]
  15. </script>
  16. <template>
  17. <Person :list="persons" />
  18. </template>

3. type.ts는 유형을 정의합니다.

  1. export interface PersonInter {
  2. id:string,
  3. name:string,
  4. age:number
  5. }
  6. export type Persons = Array<PersonInter>