最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue高級(jí)組件之provide與inject使用及說(shuō)明

 更新時(shí)間:2023年04月22日 09:12:55   作者:Garrettzxd  
這篇文章主要介紹了vue高級(jí)組件之provide與inject使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue provide與inject使用及說(shuō)明

vue中不同組件通信方式如下

  • 1.父子組件,通過prop
  • 2.非父子組件,通過vuex或根vue轉(zhuǎn)載器

 通常是以上兩種情況,然而還有一種比較特殊的情況,即孫子組件或更深層次的組件通信

1.下面是a.vue

<template>
?? ?<div class="test">
?? ??? ?<son prop="data"></son>
?? ?</div>
</template>

2.下面是son.vue

<template>
?? ?<div>
?? ??? ?<grandson prop="data"></grandson>
?? ?</div>
</template>
?
<script>
export default {
?? ?name: 'Son',
?? ?props: ['data'],
}
</script>

很容易看出,如果父組件需要與grandson通信,除了vuex,必須先與son組件通信,再由son與grandson通信,在層級(jí)比較少的情況下也無(wú)可厚非,但是層級(jí)一旦多起來(lái)是很可怕的

有人會(huì)問為什么不用vuex,簡(jiǎn)單省事,有很多為了這個(gè)引入vuex會(huì)導(dǎo)致代碼性價(jià)比比較低,項(xiàng)目本身沒有使用vuex的必要

那么這種情況下provide / inject就登場(chǎng)了

  • 1.provide就相當(dāng)于加強(qiáng)版父組件prop
  • 2.inject就相當(dāng)于加強(qiáng)版子組件的props 

因?yàn)橐陨蟽烧呖梢栽诟附M件與子組件、孫子組件、曾孫子...組件數(shù)據(jù)交互,也就是說(shuō)不僅限于prop的父子組件數(shù)據(jù)交互,只要在上一層級(jí)的聲明的provide,那么下一層級(jí)無(wú)論多深都能夠通過inject來(lái)訪問到provide的數(shù)據(jù)

1.父級(jí)組件如下

<template>
?? ?<div class="test">
?? ??? ?<son prop="data"></son>
?? ?</div>
</template>
?
<script>
export default {
?? ?name: 'Test',
?? ?provide: {
?? ??? ?name: 'Garrett'
?? ?}
}

2.孫子組件,注意這里是孫子組件,父級(jí) -> 子組件 -> 孫子組件三個(gè)層級(jí)關(guān)系

<template>
?? ?<div>
?? ??? ?{{name}}
?? ?</div>
</template>
?
<script>
export default {
?? ?name: 'Grandson',
?? ?inject: [name]
}
</script>

這里可以通過inject直接訪問其兩個(gè)層級(jí)上的數(shù)據(jù),其用法與props完全相同,同樣可以參數(shù)校驗(yàn)等

缺點(diǎn)

這么做也是有明顯的缺點(diǎn)的,在任意層級(jí)都能訪問導(dǎo)致數(shù)據(jù)追蹤比較困難,不知道是哪一個(gè)層級(jí)聲明了這個(gè)或者不知道哪一層級(jí)或若干個(gè)層級(jí)使用了,因此這個(gè)屬性通常并不建議使用能用vuex的使用vuex,不能用的多傳參幾層,但是在做組件庫(kù)開發(fā)時(shí),不對(duì)vuex進(jìn)行依賴,且不知道用戶使用環(huán)境的情況下可以很好的使用

vue3中父子組件傳值(provide/inject)

在vue3中的父子組件一般都用provide 和 inject 傳值

父組件中引入和注冊(cè)了子組件之后

在script標(biāo)簽下引入provide就可以將父組件中的變量或方法傳遞出去

在子組件中就可以用inject來(lái)接收一下 不管子組件的層級(jí)有多深都可以接收到

具體操作

  • provide('變量名','變量')
  • inject('變量名')
  • provide('事件名','事件')
  • inject('事件名','事件')

總結(jié)

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

相關(guān)文章

  • 如何在vue項(xiàng)目中嵌入jsp頁(yè)面的方法(2種)

    如何在vue項(xiàng)目中嵌入jsp頁(yè)面的方法(2種)

    這篇文章主要介紹了如何在vue項(xiàng)目中嵌入jsp頁(yè)面的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • vue可滑動(dòng)的tab組件使用詳解

    vue可滑動(dòng)的tab組件使用詳解

    這篇文章主要為大家詳細(xì)介紹了vue可滑動(dòng)的tab組件使用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 前端主流框架vue學(xué)習(xí)筆記第一篇

    前端主流框架vue學(xué)習(xí)筆記第一篇

    一步一步學(xué)Vue,這篇文章為大家分享了第一篇前端主流框架vue學(xué)習(xí)筆記,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • vue之prop與$emit的用法說(shuō)明

    vue之prop與$emit的用法說(shuō)明

    這篇文章主要介紹了vue之prop與$emit的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • @error函數(shù)vue圖片加載失敗空白頁(yè)解決方案

    @error函數(shù)vue圖片加載失敗空白頁(yè)解決方案

    這篇文章主要介紹了@error函數(shù)vue圖片加載失敗空白頁(yè)解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 淺談Vue頁(yè)面級(jí)緩存解決方案feb-alive (下)

    淺談Vue頁(yè)面級(jí)緩存解決方案feb-alive (下)

    這篇文章主要介紹了淺談Vue頁(yè)面級(jí)緩存解決方案feb-alive(下),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • element-ui 表格實(shí)現(xiàn)單元格可編輯的示例

    element-ui 表格實(shí)現(xiàn)單元格可編輯的示例

    下面小編就為大家分享一篇element-ui 表格實(shí)現(xiàn)單元格可編輯的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2018-02-02
  • 詳解Vue 動(dòng)態(tài)添加模板的幾種方法

    詳解Vue 動(dòng)態(tài)添加模板的幾種方法

    本篇文章主要介紹了詳解Vue 動(dòng)態(tài)添加模板的幾種方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-04-04
  • vue關(guān)閉eslint檢查的方式

    vue關(guān)閉eslint檢查的方式

    這篇文章主要介紹了vue關(guān)閉eslint檢查的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 一步步教你用Vue.js創(chuàng)建一個(gè)組件(附代碼示例)

    一步步教你用Vue.js創(chuàng)建一個(gè)組件(附代碼示例)

    組件(Component)是Vue.js最強(qiáng)大的功能之一,組件可以擴(kuò)展HTML元素,封裝可重用的代碼,下面這篇文章主要給大家介紹了關(guān)于如何一步步用Vue.js創(chuàng)建一個(gè)組件的相關(guān)資料,需要的朋友可以參考下
    2022-12-12

最新評(píng)論

泽普县| 托克逊县| 德江县| 平江县| 富顺县| 大姚县| 漾濞| 柳林县| 繁昌县| 三门峡市| 扶沟县| 荣成市| 棋牌| 三亚市| 桂阳县| 虎林市| 甘洛县| 龙川县| 陵水| 陇川县| 邢台市| 犍为县| 晋中市| 巢湖市| 西昌市| 青海省| 色达县| 泰来县| 登封市| 红河县| 喀喇沁旗| 成武县| 南岸区| 福海县| 曲阳县| 蒙城县| 上杭县| 宜宾市| 远安县| 凤山县| 吴堡县|