亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                「 VUE3 + TS + Vite 」父子組件間如何通信?

                組件之間傳值,大家都很熟悉,涉及到 VUE3 +TS 好多同學(xué)就無從下手了,所以分享這篇文章,希望看完后提起 VUE3+TS 能夠不慌不忙。

                平時使用的函數(shù)如:ref、reactive、watch、computed 等需要先引入才能使用,但是本篇文章介紹的 defineProps、withDefaults、defineEmits、defineExpose 都是開箱即用的函數(shù),無需引入。

                父向子傳值:defineProps

                在父組件內(nèi)給子組件傳值時,通過 v-bind 綁定一個數(shù)據(jù),然后子組件使用 defineProps 接收數(shù)據(jù)。

                可以傳遞的數(shù)據(jù)有兩種:字符串類型 和 非字符串類型。字符串類型不需要 v-bind,非字符串需要使用 v-bind,可以簡寫成冒號(:)。

                /* 父組件代碼 */ 父組件

                子組件接收的時候使用 defineProps,需要注意的是我們使用 TS 需要加類型限制,如果不是 TS 的可以直接使用。

                TS 語法使用:

                defineProps()

                非 TS 語法使用:

                defineProps({title: { default: “”, type: string }, list: Array})

                對應(yīng)上邊父組件傳值,使用 TS 語法接收的子組件代碼為:

                子組件 {{ title }} {{ list }}

                默認(rèn)值:withDefaults

                在非 TS 語法中,default 可以設(shè)置默認(rèn)值,在 TS 語法中,如何設(shè)置默認(rèn)值呢?

                withDefaults 是一個無需引入開箱即用的函數(shù),可以接收兩個參數(shù),第一個用于defineProps 接收參數(shù),第二個參數(shù)是一個對象用于設(shè)置默認(rèn)值。

                使用方式1:分離模式

                type Props = {title?: string; list?: number[]}withDefaults(defineProps(), {title: “默認(rèn)值”, list: () => [1, 2]})

                使用方式2:組合模式

                widthDefault(defineProps(), {title: “默認(rèn)值”, list: () => [1, 2]})

                給上邊的子組件添加默認(rèn)值代碼如下:

                子組件 {{ title }} {{ list }}

                將父組件中傳的值刪除掉之后,發(fā)現(xiàn)設(shè)置的默認(rèn)值就展示出來了。

                子向父傳值:defineEmits

                子組件給父組件進(jìn)行傳值時,都是通過派發(fā)事件,去觸發(fā)父組件中的事件并接收值。

                在子組件綁定一個 @click 事件,然后通過 defineEmits 注冊自定義事件,當(dāng)點(diǎn)擊 @click 事件時觸發(fā) emit 去調(diào)用注冊事件,然后傳遞參數(shù)。

                非 TS 聲明語法

                // clickname 父組件自定義事件名let emit = defineEmits([ ‘clickname’ ])const postV = () => {emit(‘clickname’, ‘傳遞的值或變量’)}

                TS 聲明語法

                // clickname 父組件自定義事件名let emit = defineEmits()const postV = (str: string): void => {emit(‘clickname’, str)}

                如果是多個自定義事件,寫法如下:

                type Person = { name: string age: number}let emit = defineEmits()const postV = (str: string): void => {emit(‘clickname’, str)}const postVData = (per: Person): void => {emit(‘getData’, per)}

                我們在子組件內(nèi),使用 defineEmits 添加派發(fā)事件:

                子組件 子向父傳值 子向父傳data

                父組件內(nèi)使用自定義事件,接收子組件傳遞來的數(shù)據(jù):

                父組件

                defineExpose

                子組件向父組件傳值時,除了使用 defineEmits 之后,也可以使用 defineExpose ,它是通過把組件自己的屬性暴露出去,父組件先獲取到子組件,再獲取屬性值。

                defineExpose 接收一個對象參數(shù),包含需要傳遞的屬性。

                defineExpose({name, count, ….})

                在子組件內(nèi),定義和暴露需要傳遞的屬性:

                子組件

                在父組件內(nèi)使用 ref 獲取到子組件,然后打印屬性:

                父組件 獲取子組件屬性

                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年7月18日 00:12
                下一篇 2022年7月18日 00:12

                相關(guān)推薦

                • 存儲過程語法(sql server存儲過程語法)

                  今天小編給各位分享存儲過程語法的知識,其中也會對sql server存儲過程語法進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! oracle存儲過程基本語法…

                  2022年11月26日
                • 《寶可夢朱紫》獒教父屬性是什么?獒教父屬性一覽

                  寶可夢朱紫里獒教父是一只很強(qiáng)的寶可夢,很多玩家不清楚獒教父的屬性是什么樣的,下面就給大家?guī)韺毧蓧糁熳祥峤谈笇傩砸挥[,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 獒教父屬性一覽…

                  2022年11月25日
                • 《寶可夢朱紫》太晶化強(qiáng)力寶可夢推薦 太晶化哪些寶可夢最強(qiáng)?

                  寶可夢朱紫游戲中寶可夢種類繁多,不過有的寶可夢比較強(qiáng),有的稍弱一些,那么太晶化化哪些寶可夢最強(qiáng)呢,為了便于大家更好的體驗(yàn)游戲,這里給大家?guī)砹藢毧蓧糁熳咸Щ瘡?qiáng)力寶可夢推薦,一起來…

                  2022年11月25日
                • 寶可夢朱紫四大天王屬性怎么樣 四大天王屬性數(shù)值介紹

                  寶可夢朱紫四大天王屬性如何?四大天王的屬性數(shù)值玩家們還是挺好奇的,想要了解四大天王屬性的可以看看下面小編的介紹,小編會把四大天王的屬性數(shù)值全都分享在下面,各位趕緊來小編這里多了解一…

                  2022年11月25日
                • 寶可夢朱紫皮卡丘多少級進(jìn)化 皮卡丘進(jìn)化條件攻略

                  寶可夢朱紫皮卡丘進(jìn)化條件是什么?皮卡丘怎么進(jìn)化?作為最受歡迎的電屬性寶可夢,大家都很想知道皮卡丘進(jìn)化的方法,今天小編這就在下面的攻略中分享皮卡丘進(jìn)化條件,各位可以趕緊來小編這里了解…

                  2022年11月25日
                • 什么是推廣cpa一篇文章帶你看懂CPA推廣渠道

                  CPA渠道 CPA指的是按照指定的行為結(jié)算,可以是搜索,可以是注冊,可以是激活,可以是搜索下載激活,可以是綁卡,實(shí)名認(rèn)證,可以是付費(fèi),可以是瀏覽等等。甲乙雙方可以根據(jù)自己的情況來定…

                  2022年11月25日
                • 抖音直播帶貨有哪些方法技巧(抖音直播帶貨有哪些痛點(diǎn))

                  如今抖音這個短視頻的變現(xiàn)能力越來越突顯了,尤其是在平臺上開通直播,更具有超強(qiáng)的帶貨屬性,已經(jīng)有越來越多的普通人加入到其中了。不過直播帶貨雖然很火,但是也不是每個人都能做好的,那么在…

                  2022年11月24日
                • 《寶可夢朱紫》四天王屬性是什么?四天王屬性陣容一覽

                  寶可夢朱紫中玩家可以挑戰(zhàn)四天王,很多玩家想知道寶可夢朱紫四天王屬性是什么,有什么陣容?下面就帶來寶可夢朱紫四天王屬性陣容一覽,感興趣的小伙伴不要錯過,希望能幫助到大家。 四天王屬性…

                  2022年11月24日
                • 寶可夢朱紫皮卡丘怎么進(jìn)化?寶可夢朱紫皮卡丘進(jìn)化條件攻略

                  寶可夢朱紫皮卡丘進(jìn)化條件是什么?皮卡丘怎么進(jìn)化?作為最受歡迎的電屬性寶可夢,大家都很想知道皮卡丘進(jìn)化的方法,今天小編這就在下面的攻略中分享皮卡丘進(jìn)化條件,各位可以趕緊來小編這里了解…

                  2022年11月24日
                • 事件營銷案例

                  篇一成功營銷案例小故事成功銷售案例小故事篇1模仿 一個人想做一套家具,就走到樹林里砍倒一棵樹,并動手把它鋸成木板這個人鋸樹的時候,把樹干的一頭擱在樹墩上,自己騎在樹干上還往鋸開的縫…

                  2022年11月24日

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時間:周一至周五,10:30-18:30,節(jié)假日休息