亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue3中依賴注入provide、inject的使用

 更新時(shí)間:2023年10月19日 09:38:07   作者:癡心阿文  
這篇文章主要介紹了Vue3中依賴注入provide、inject的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、Prop 逐級(jí)透傳問題

vue中我們要從父組件向子組件傳遞數(shù)據(jù)時(shí),會(huì)使用 props。

如果需要給深層子組件傳遞數(shù)據(jù),會(huì)非常麻煩,

如下圖:

provide 和 inject 可以幫助我們解決這一問題。

一個(gè)父組件相對(duì)于其所有的后代組件,會(huì)作為依賴提供者。

任何后代的組件樹,無論層級(jí)有多深,都可以注入由父組件提供給整條鏈路的依賴。

二、Provide (提供)

要為組件后代提供數(shù)據(jù),需要使用到 provide() 函數(shù):

如果不使用 <script setup>,請(qǐng)確保 provide() 是在 setup() 同步調(diào)用的:

provide() 函數(shù)接收兩個(gè)參數(shù)。第一個(gè)參數(shù)被稱為注入名,可以是一個(gè)字符串或是一個(gè) Symbol。

后代組件會(huì)用注入名來查找期望注入的值。

一個(gè)組件可以多次調(diào)用 provide(),使用不同的注入名,注入不同的依賴值。

第二個(gè)參數(shù)是提供的值,值可以是任意類型,包括響應(yīng)式的狀態(tài),比如一個(gè) ref:

提供的響應(yīng)式狀態(tài)使后代組件可以由此和提供者建立響應(yīng)式的聯(lián)系。

三、應(yīng)用層 Provide

除了在一個(gè)組件中提供依賴,我們還可以在整個(gè)應(yīng)用層面提供依賴:

在應(yīng)用級(jí)別提供的數(shù)據(jù)在該應(yīng)用內(nèi)的所有組件中都可以注入。

這在你編寫插件時(shí)會(huì)特別有用,因?yàn)椴寮话愣疾粫?huì)使用組件形式來提供值。

四、Inject (注入)

要注入上層組件提供的數(shù)據(jù),需使用 inject() 函數(shù):

如果提供的值是一個(gè) ref,注入進(jìn)來的會(huì)是該 ref 對(duì)象,而不會(huì)自動(dòng)解包為其內(nèi)部的值。

這使得注入方組件能夠通過 ref 對(duì)象保持了和供給方的響應(yīng)性鏈接。

同樣的,如果沒有使用 <script setup>,inject() 需要在 setup() 內(nèi)同步調(diào)用:

五、注入默認(rèn)值

默認(rèn)情況下,inject 假設(shè)傳入的注入名會(huì)被某個(gè)祖先鏈上的組件提供。

如果該注入名的確沒有任何組件提供,則會(huì)拋出一個(gè)運(yùn)行時(shí)警告。

如果在注入一個(gè)值時(shí)不要求必須有提供者,那么我們應(yīng)該聲明一個(gè)默認(rèn)值,和 props 類似:

在一些場景中,默認(rèn)值可能需要通過調(diào)用一個(gè)函數(shù)或初始化一個(gè)類來取得。

為了避免在用不到默認(rèn)值的情況下進(jìn)行不必要的計(jì)算或產(chǎn)生副作用,我們可以使用工廠函數(shù)來創(chuàng)建默認(rèn)值:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue實(shí)現(xiàn)移動(dòng)端圖片上傳功能

    vue實(shí)現(xiàn)移動(dòng)端圖片上傳功能

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)移動(dòng)端圖片上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Vue組件之間數(shù)據(jù)共享淺析

    Vue組件之間數(shù)據(jù)共享淺析

    本文章向大家介紹vue組件中的數(shù)據(jù)共享,主要包括vue組件中的數(shù)據(jù)共享使用實(shí)例、應(yīng)用技巧、基本知識(shí)點(diǎn)總結(jié)和需要注意事項(xiàng),具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-11-11
  • 詳解Vue.js Class與Style綁定

    詳解Vue.js Class與Style綁定

    這篇文章主要為大家介紹了Vue.js Class與Style綁定的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • ElementPlus表單rules校驗(yàn)的方法步驟

    ElementPlus表單rules校驗(yàn)的方法步驟

    相信大家經(jīng)常都會(huì)遇到要處理表單驗(yàn)證的環(huán)節(jié),而我在最近的項(xiàng)目中也遇到需要做表單驗(yàn)證的業(yè)務(wù),下面這篇文章主要給大家介紹了關(guān)于ElementPlus表單rules校驗(yàn)的方法步驟,需要的朋友可以參考下
    2023-04-04
  • vue自動(dòng)路由-單頁面項(xiàng)目(非build時(shí)構(gòu)建)

    vue自動(dòng)路由-單頁面項(xiàng)目(非build時(shí)構(gòu)建)

    這篇文章主要介紹了vue自動(dòng)路由-單頁面項(xiàng)目(非build時(shí)構(gòu)建),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • vue常見路由跳轉(zhuǎn)的幾種方式小結(jié)

    vue常見路由跳轉(zhuǎn)的幾種方式小結(jié)

    本文主要介紹了常見路由跳轉(zhuǎn)的幾種方式,主要介紹了四種常見方式,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • vue實(shí)現(xiàn)購物車完整功能

    vue實(shí)現(xiàn)購物車完整功能

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)購物車完整功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Vue $emit()不能觸發(fā)父組件方法的原因及解決

    Vue $emit()不能觸發(fā)父組件方法的原因及解決

    這篇文章主要介紹了Vue $emit()不能觸發(fā)父組件方法的原因及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 使用Vue生成動(dòng)態(tài)表單的示例代碼

    使用Vue生成動(dòng)態(tài)表單的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何使用Vue生成動(dòng)態(tài)表單,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • Vue3使用vant檢索組件van-search遇到的問題小結(jié)

    Vue3使用vant檢索組件van-search遇到的問題小結(jié)

    當(dāng)清空按鈕與檢索按鈕同時(shí)居右時(shí),點(diǎn)擊clear清空按鈕事件時(shí)會(huì)同時(shí)觸發(fā)click-right-icon事件,這個(gè)時(shí)候容易觸發(fā)一系列問題,小編小編給大家分享Vue3使用vant檢索組件van-search遇到的問題小結(jié),感興趣的朋友一起看看吧
    2024-02-02

最新評(píng)論