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

<optgroup id="cczp1"><ruby id="cczp1"><cite id="cczp1"></cite></ruby></optgroup>
  • <acronym id="cczp1"></acronym>
    <acronym id="cczp1"><option id="cczp1"><ol id="cczp1"></ol></option></acronym>
    <delect id="cczp1"></delect>
    <center id="cczp1"></center>
    <delect id="cczp1"></delect><em id="cczp1"><button id="cczp1"><blockquote id="cczp1"></blockquote></button></em>
    1. <optgroup id="cczp1"><td id="cczp1"><dfn id="cczp1"></dfn></td></optgroup>

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

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

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

      父向子傳值:defineProps

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

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

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

      子組件接收的時(shí)候使用 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 是一個(gè)無需引入開箱即用的函數(shù),可以接收兩個(gè)參數(shù),第一個(gè)用于defineProps 接收參數(shù),第二個(gè)參數(shù)是一個(gè)對象用于設(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)行傳值時(shí),都是通過派發(fā)事件,去觸發(fā)父組件中的事件并接收值。

      在子組件綁定一個(gè) @click 事件,然后通過 defineEmits 注冊自定義事件,當(dāng)點(diǎn)擊 @click 事件時(shí)觸發(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)}

      如果是多個(gè)自定義事件,寫法如下:

      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

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

      defineExpose 接收一個(gè)對象參數(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))

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

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

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

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

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

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

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

        2022年11月24日

      聯(lián)系我們

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