更新時間:2022-03-16 10:22:44 來源:動力節(jié)點(diǎn) 瀏覽1305次
雖然 Vue 可以很容易地向組件添加屬性,但有時您需要更多地控制允許添加哪些類型的東西。值得慶幸的是,Vue 提供了內(nèi)置的方法來將類型檢查、驗(yàn)證、默認(rèn)值和約束添加到你的 prop 定義中。
您可以通過添加類型財產(chǎn)給它。
例如,以下組件將可能的輸入值限制為數(shù)字。
子組件.vue
<template>
<h2>Numerical Property {{imperfectNumber}}</p>
</template>
<script>
export default {
props: {
imperfectNumber: {
type: Number
}
}
}
</script>
父組件.vue
<template>
<child-component :imperfectNumber="41"></child-component>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
}
}
</script>
允許的類型值為:
目的- 只允許對象,例如:myProp="{key: 'value'}".
大批- 只允許數(shù)組,例如:myProp=“[1, 2, 3]”.
功能只允許傳遞函數(shù),例如 *:myProp=“function(test) { return test.toUpperCase() }”。
細(xì)繩- 只允許字符串,例如:myProp="'示例'"(或更簡單地說,myProp =“示例”)。
數(shù)字- 只允許數(shù)值,例如:myProp="103.4".
布爾值- 只允許真的要么錯誤的值,例如:myProp=“真”.
[任何構(gòu)造函數(shù)]- 你也可以傳入類或構(gòu)造函數(shù),它會允許作為這些函數(shù)實(shí)例的道具。
您可以通過添加要求:真屬性定義的值。
props: {
imperfectNumber: {
type: Number,
required: true
}
}
或者,您可以為該屬性設(shè)置一個默認(rèn)值,如果沒有傳入任何值,則將使用該默認(rèn)值。
props: {
imperfectNumber: {
type: Number,
default: 43
}
}
您甚至可以將其設(shè)置為生成動態(tài)默認(rèn)值的函數(shù)!
props: {
imperfectNumber: {
type: Number,
default: () => Math.random()
}
}
對于更復(fù)雜的對象,還可以添加自定義驗(yàn)證器職能。驗(yàn)證器只是一個接受輸入屬性值并返回布爾值的函數(shù),真的如果有效,錯誤的否則。
props: {
imperfectNumber: {
type: Number,
validator: value => {
// Only accepts values that contain the string 'cookie-dough'.
return value.indexOf('cookie-dough') !== -1
}
}
}
通過組合這些屬性,您可以穩(wěn)健地處理用戶可能向您的組件拋出的幾乎任何值,并使其更易于理解。如果大家想了解更多相關(guān)知識,可以關(guān)注一下動力節(jié)點(diǎn)的Java視頻,里面的課程內(nèi)容全面細(xì)致,從入門到精通,相信對大家的學(xué)習(xí)會有所幫助的。
初級 202925
初級 203221
初級 202629
初級 203743