陜西省建設(shè)監(jiān)理協(xié)會(huì)證書查詢網(wǎng)站寧波網(wǎng)站推廣怎么做
const props = defineProps({name: String,
});
String
是在 defineProps()
函數(shù)中用來(lái)聲明 name
prop 的類型,表示 name
必須是字符串類型。如果父組件沒(méi)有傳入 name
或傳入的 name
不是字符串類型,那么就會(huì)產(chǎn)生類型驗(yàn)證錯(cuò)誤。
defineProps()
函數(shù)支持的數(shù)據(jù)類型除了 String
,還包括以下幾種:
Number
:數(shù)字類型,可以是整數(shù)或浮點(diǎn)數(shù)。Boolean
:布爾類型,值為 true 或 false。Object
:對(duì)象類型,可以是純粹的對(duì)象、函數(shù)或數(shù)組等。Array
:數(shù)組類型,可以是任何類型的項(xiàng)組成的數(shù)組,也可以是多維數(shù)組。null
:強(qiáng)制要求 prop 的值必須為 null。undefined
:強(qiáng)制要求 prop 的值必須為 undefined。- 自定義類型:你可以傳遞一個(gè)自己定義的構(gòu)造函數(shù),用于驗(yàn)證 prop 的類型是否正確。
此外,還有一些常用的驗(yàn)證規(guī)則:
required
:布爾類型,指定該 prop 是否必須傳入。default
:設(shè)置默認(rèn)值,在父組件未傳入時(shí)會(huì)使用該值。validator
:傳入一個(gè)自定義的驗(yàn)證函數(shù),用于驗(yàn)證 prop 是否合法。
例如:
const props = defineProps({age: {type: Number,default: 18,validator: (value) => value > 0 && value < 120,},isVisible: {type: Boolean,default: true,},person: {type: Object,default: () => ({ name: 'Tom', age: 20 }),},
});
在上面的例子中,我們聲明了三個(gè) prop:age
、isVisible
和 person
。其中,age
是數(shù)字類型,必須為正整數(shù)且不能超過(guò) 120 歲;isVisible
是布爾類型,如果父組件沒(méi)有傳入,則默認(rèn)為 true;person
是對(duì)象類型,如果父組件沒(méi)有傳入,則默認(rèn)為 { name: 'Tom', age: 20 }
。
總之,在定義 props 時(shí),我們需要考慮 props 的類型、是否必須、默認(rèn)值和驗(yàn)證規(guī)則等,以及如何在組件內(nèi)部使用這些 props。