詳解vue中組件參數(shù)
我們來聊一下vue中的組件參數(shù).
1.vue中組件參數(shù)
我們可以為組件的 prop 指定驗證要求,例如你知道的這些類型。如果有一個需求沒有被滿足,則 Vue 會在瀏覽器控制臺中警告你。這在開發(fā)一個會被別人用到的組件時尤其有幫助。
我們來看下最為簡單和常見的vue代碼
<div id="root">
<item content="hello"></item>
</div>
<script>
Vue.component("item",{
props:["content"],
template:"<div>{{content}}</div>"
})
new Vue({
el:"#root"
})
</script>
這是一個最簡單的創(chuàng)建組件和父組件向子組件的例子,但是我們在是否可以考慮一下,如果我希望父組件向子組件傳遞參數(shù)的時候是個數(shù)字類型呢?又或者是布爾類型呢?所以我們在這里就必須要對父組件傳遞過來的參數(shù)做一個校驗。
<div id="root">
<item content="hello"></item>
</div>
<script>
Vue.component("item",{
props:{
content:String
},
template:"<div>{{content}}</div>"
})
new Vue({
el:"#root"
})
</script>
我們對第一個例子的代碼進(jìn)行了修改,我們把子組件中的props屬性,改為一種對象的形式,而且我們也約束了父組件傳遞過來的content為String類型,但是還會有這樣的一種情況出現(xiàn),請看下面的代碼:
<div id="root">
<item content="1"></item>
</div>
<script>
Vue.component("item",{
props:{
content:String
},
template:"<div>{{content}}</div>"
})
new Vue({
el:"#root"
})
</script>
我們改變了父組件中content的值等于1,那么我們就很自然的把content理解為數(shù)字類型,那么頁面就會出現(xiàn)報錯的提示.但是我們打開頁面后,并沒有瀏覽器報錯。這又是為什么呢?
在vue中,默認(rèn)傳遞的值都是字符串,如果你想要傳遞一個數(shù)字,那么必須在content前面添加一個:
我們希望它出現(xiàn)報錯,那么我們就應(yīng)該這么修改以上的代碼。
<div id="root">
<item :content="1"></item>
</div>
<script>
Vue.component("item",{
props:{
content:String
},
template:"<div>{{content}}</div>"
})
new Vue({
el:"#root"
})
</script>
那么這個時候,VUE就會給我們一個代碼錯誤提示。如果我們希望它不報錯,那么我們修改一下content里面的類型
<div id="root">
<item :content="1"></item>
</div>
<script>
Vue.component("item",{
props:{
content:Number
},
template:"<div>{{content}}</div>"
})
new Vue({
el:"#root"
})
</script>
當(dāng)然了,content也是可以接受一個數(shù)組的,用來判斷它父組件為子組件傳遞的多個參數(shù)。
<div id="root">
<item :content="1"></item>
</div>
<script>
Vue.component("item",{
props:{
content:[String,Number]
},
template:"<div>{{content}}</div>"
})
new Vue({
el:"#root"
})
</script>
除了數(shù)組形式,我們也可以寫成對象的形式。那么對象的形式,vue為我們提供了各種可選的參數(shù)。
<div id="root">
<item content="hello world"></item>
</div>
<script>
Vue.component("item",{
props:{
content:{
type:String,
required:true,
default:"asd",
validator:function(value){
return (value.length>5)
}
}
},
template:"<div>{{content}}</div>"
})
new Vue({
el:"#root"
})
</script>
總結(jié)
以上所述是小編給大家介紹的vue中組件參數(shù),希望對大家有所幫助,如果大家有任何疑問請給我留言,
小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
vue動態(tài)渲染svg、添加點擊事件的實現(xiàn)
這篇文章主要介紹了vue動態(tài)渲染svg、添加點擊事件的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
vue3插槽:el-table表頭插入tooltip及更換表格背景色方式
這篇文章主要介紹了vue3插槽:el-table表頭插入tooltip及更換表格背景色方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
Vue中構(gòu)造數(shù)組數(shù)據(jù)之map和forEach方法實現(xiàn)
數(shù)組操作是前端最重要的數(shù)據(jù)操作,構(gòu)造數(shù)組數(shù)據(jù),又是數(shù)組操作中很常見的,本文將梳理下map和forEach方法在Vue項目中的使用,感興趣的朋友跟隨小編一起看看吧2022-09-09
基于vue+element實現(xiàn)全局loading過程詳解
這篇文章主要介紹了基于vue+element實現(xiàn)全局loading過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07
Vue3.3?+?TS4構(gòu)建實現(xiàn)ElementPlus功能的組件庫示例
Vue.js?是目前最盛行的前端框架之一,而?TypeScript?則是一種靜態(tài)類型言語,它能夠讓開發(fā)人員在編寫代碼時愈加平安和高效,本文將引見如何運用?Vue.js?3.3?和?TypeScript?4?構(gòu)建一個自主打造媲美?ElementPlus?的組件庫2023-10-10

