Vue組件如何設(shè)置Props實(shí)例詳解
在 Vue 中構(gòu)建組件通常需要定義一些屬性,以使組件可以更好復(fù)用,在這種情況下會(huì)使用 props 來(lái)自定義數(shù)據(jù)來(lái)傳遞數(shù)據(jù)。接下來(lái)以一個(gè)簡(jiǎn)單的組件來(lái)介紹如何使用組件 props 。
<CrayonAlert title="友情提示" description="請(qǐng)輸入真實(shí)的信息" />
如上面代碼所示,組件定義兩個(gè)屬性 title 和 description,組件代碼如下:
<template> <div> <h2>{{ title }}</h2> <p>{{ description }}</p> </div> </template> <script> export default { name: "CrayonAlert", props: { title: { type: String, }, description: { type: String, }, }, }; </script>
屬性類型
props 不僅限于 String ,還可以是以下類型:
- Object
- Array
- Symbol
- Function
- Number
- String
- Date
- Boolean
屬性默認(rèn)值
在上面代碼中,當(dāng)組件沒(méi)有傳入相應(yīng)的屬性值的情況下,會(huì)顯示 undefined 或者在模板HTML沒(méi)有任何文本,這個(gè)時(shí)候可以考慮定義一個(gè)默認(rèn)值:
export default { name: "CrayonAlert", props: { title: { type: String, default: "提示", }, description: { type: String, default: "描述", }, }, };
設(shè)置好默認(rèn)值后,在沒(méi)有傳入任何參數(shù)值的時(shí)候,會(huì)顯示默認(rèn)值。這種方式在 Vue2 比較常用。
屬性值驗(yàn)證
跟 Form 數(shù)據(jù)一樣,組件屬性值也可以對(duì)其進(jìn)行驗(yàn)證,如下:
export default { name: "CrayonAlert", props: { title: { type: String, validator(value) { return value !== ""; }, }, description: { type: String, validator(value) { return value !== ""; }, }, }, };
Composition API 中設(shè)置屬性
在 Vue3 中,引入了一種稱為 Composition API 的新方法。在 Composition API 中,定義 props 使用 defineProps 函數(shù)。定義沒(méi)有默認(rèn)值的屬性如下所示:
import { defineProps } from "vue"; const props = defineProps({ title: { type: String, }, description: { type: String, }, });
設(shè)置默認(rèn)值和在Vue2 中有點(diǎn)類似,如下:
import { defineProps } from "vue"; const props = defineProps({ title: { type: String, default: "提示", }, description: { type: String, default: "描述", }, });
為了避免在屬性上設(shè)置默認(rèn)值,可以通過(guò)使用 required 字段來(lái)設(shè)置屬性為必須項(xiàng)。定義代碼如下:
import { defineProps } from "vue"; const props = defineProps({ title: { type: String, default: "提示", required: true, }, description: { type: String, default: "描述", required: true, }, });
總結(jié)
到此這篇關(guān)于Vue組件如何設(shè)置Propsx的文章就介紹到這了,更多相關(guān)Vue組件Propsx內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3在自定義hooks中使用useRouter報(bào)錯(cuò)的解決方案
這篇文章主要介紹了vue3在自定義hooks中使用useRouter報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08vue+axios實(shí)現(xiàn)登錄攔截的實(shí)例代碼
本篇文章主要介紹了vue+axios實(shí)現(xiàn)登錄攔截的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05Vue中的scoped實(shí)現(xiàn)原理及穿透方法
這篇文章主要介紹了Vue中的scoped實(shí)現(xiàn)原理及穿透方法,本文通過(guò)實(shí)例文字相結(jié)合的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2018-05-05使用vue的transition完成滑動(dòng)過(guò)渡的示例代碼
這篇文章主要介紹了使用vue的transition完成滑動(dòng)過(guò)渡的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Vue中使用正則表達(dá)式進(jìn)行文本匹配和處理的方法小結(jié)
正則表達(dá)式在Vue中具有廣泛的應(yīng)用場(chǎng)景,包括文本匹配和處理、表單驗(yàn)證等,通過(guò)本文的介紹和示例,希望讀者能更好地理解和應(yīng)用正則表達(dá)式在Vue中的使用方法,感興趣的朋友一起看看吧2023-11-11Vue項(xiàng)目打包成Docker鏡像包的簡(jiǎn)單步驟
最近做時(shí)速云項(xiàng)目部署,需要將前端項(xiàng)目打成鏡像文件,下面這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目打包成Docker鏡像包的簡(jiǎn)單步驟,需要的朋友可以參考下2023-10-10vue結(jié)合vant實(shí)現(xiàn)聯(lián)動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了vue結(jié)合vant實(shí)現(xiàn)聯(lián)動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Vue執(zhí)行方法,方法獲取data值,設(shè)置data值,方法傳值操作
這篇文章主要介紹了Vue執(zhí)行方法,方法獲取data值,設(shè)置data值,方法傳值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08