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

vue子組件設(shè)計(jì)provide和inject理解使用

 更新時(shí)間:2023年08月11日 11:55:25   作者:大海愛(ài)奔跑  
這篇文章主要為大家介紹了vue子組件設(shè)計(jì)provide和inject理解及使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

閱讀element-ui源碼,發(fā)現(xiàn)在設(shè)計(jì)子組時(shí)件用到了inject屬性,隨即查了一下官方文檔,得知vue在2.2.0版本里新增了provide / inject

provide 和 inject 主要在開(kāi)發(fā)高階插件/組件庫(kù)時(shí)使用。并不推薦用于普通應(yīng)用程序代碼中。

按照文檔的描述,我的理解是:在多級(jí)嵌套的組件體系中,某級(jí)外層組件可以通過(guò)provide屬性向其下任意一級(jí)子組件提供一個(gè)依賴,不管層級(jí)有多深;而某級(jí)子組件則可以通過(guò)inject屬性接收來(lái)自其上任意一級(jí)父組件提供的依賴(通過(guò)this.xxx形式獲?。?。注意:provideinject需要一起使用。

舉個(gè)例子說(shuō)明

清朝三位皇帝:康熙(玄燁)、雍正(胤禛)、乾隆(弘歷)是祖孫三代,我們用vue組件的思想表示他們之間的關(guān)系,并模擬他們的一段對(duì)話,以此理解vue中的provideinject。

調(diào)用組件

——大清帝國(guó):qing-dynasty.vue

<!--組件的嵌套關(guān)系-->
<kangxi>
  <yongzheng>
    <qianlong></qianlong>
  </yongzheng>
</kangxi>

定義爺爺組件

——康熙皇帝:kangxi.vue

<template>
  <div class="kangxi">
    康熙皇帝
    <slot></slot>
  </div>
</template>
<script>
  export default {
    name: 'kangxi',
    // 爺爺對(duì)兒子提供‘kangxiToYongzheng'
    // 對(duì)孫子提供‘kangxiToQianlong'
    provide: {
      kangxiToYongzheng: '康熙皇帝對(duì)雍正皇帝說(shuō):"你是我兒子"',
      kangxiToQianlong: '康熙皇帝對(duì)乾隆皇帝說(shuō):"你是我孫子"'
    },
    data () {
      return {}
    }
  }
</script>
<style lang="scss">
.kangxi {
  width: 200px;
  height: 140px;
  text-align: center;
  background-color: #ffb599;
}
</style>

定義兒子組件

——雍正皇帝:yongzheng.vue

<template>
  <div class="yongzheng">
    雍正皇帝
    <slot></slot>
  </div>
</template>
<script>
  export default {
    name: 'yongzheng',
    // 兒子接收父親提供的‘kangxiToYongzheng'
    inject: ['kangxiToYongzheng'],
    // 同時(shí),兒子也給孫子提供‘yongzhengToQianlong'
    provide: {
      yongzhengToQianlong: '雍正皇帝對(duì)乾隆皇帝說(shuō):"你是我兒子"'
    },
    data () {
      return {}
    },
    created () {
      // 可以通過(guò)this獲取
      console.log(this.kangxiToYongzheng, ' 雍正皇帝回答:"是的,爸爸"')
    }
  }
</script>
<style lang="scss">
  .yongzheng {
    width: 160px;
    height: 100px;
    margin: 0 auto;
    text-align: center;
    background-color: #84b5ff;
  }
</style>

// 打印結(jié)果

康熙皇帝對(duì)雍正皇帝說(shuō):"你是我兒子"  雍正皇帝回答:"是的,爸爸" 

定義孫子組件

——乾?。簈ianlong.vue

<template>
  <div class="qianlong">
    乾隆皇帝
  </div>
</template>
<script>
  export default {
    name: 'qianlong',
    // 孫子接收爺爺?shù)摹甼angxiToQianlong'、父親的‘yongzhengToQianlong'
    inject: ['kangxiToQianlong', 'yongzhengToQianlong'],
    data () {
      return {}
    },
    created () {
      // 可以通過(guò)this獲取
      console.log(this.kangxiToQianlong, ' 乾隆皇帝回答:"是的,爺爺"')
      console.log(this.yongzhengToQianlong, ' 乾隆皇帝回答:"是的,爸爸"')
    }
  }
</script>
<style lang="scss">
.qianlong {
  width: 120px;
  height: 60px;
  margin: 0 auto;
  text-align: center;
  background-color: blanchedalmond;
}
</style>

 // 打印結(jié)果

康熙皇帝對(duì)乾隆皇帝說(shuō):"你是我孫子"  乾隆皇帝回答:"是的,爺爺"
雍正皇帝對(duì)乾隆皇帝說(shuō):"你是我兒子"  乾隆皇帝回答:"是的,爸爸"

以上就是vue子組件設(shè)計(jì)provide和inject理解使用的詳細(xì)內(nèi)容,更多關(guān)于vue子組件設(shè)計(jì)provide inject的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vuex unknown action type報(bào)錯(cuò)問(wèn)題及解決

    Vuex unknown action type報(bào)錯(cuò)問(wèn)題及解決

    這篇文章主要介紹了Vuex unknown action type報(bào)錯(cuò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 深入理解vue3中的reactive()

    深入理解vue3中的reactive()

    本文主要介紹了深入理解vue3中的reactive(),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Vue中v-for的數(shù)據(jù)分組實(shí)例

    Vue中v-for的數(shù)據(jù)分組實(shí)例

    下面小編就為大家分享一篇Vue中v-for的數(shù)據(jù)分組實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • vue+elementUI(el-upload)圖片壓縮,默認(rèn)同比例壓縮操作

    vue+elementUI(el-upload)圖片壓縮,默認(rèn)同比例壓縮操作

    這篇文章主要介紹了vue+elementUI(el-upload)圖片壓縮,默認(rèn)同比例壓縮操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • vuex狀態(tài)管理數(shù)據(jù)狀態(tài)查詢與更改方式

    vuex狀態(tài)管理數(shù)據(jù)狀態(tài)查詢與更改方式

    這篇文章主要介紹了vuex狀態(tài)管理數(shù)據(jù)狀態(tài)查詢與更改方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue開(kāi)發(fā)中關(guān)于axios的封裝過(guò)程

    vue開(kāi)發(fā)中關(guān)于axios的封裝過(guò)程

    這篇文章主要介紹了vue開(kāi)發(fā)中關(guān)于axios的封裝過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 詳解vue-router的Import異步加載模塊問(wèn)題的解決方案

    詳解vue-router的Import異步加載模塊問(wèn)題的解決方案

    這篇文章主要介紹了詳解vue-router的Import異步加載模塊問(wèn)題的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Vue啟動(dòng)失敗報(bào)錯(cuò):Module?not?found:?Error:?Can‘t?resolve?'less-loader'解決

    Vue啟動(dòng)失敗報(bào)錯(cuò):Module?not?found:?Error:?Can‘t?resolve?&apos

    這篇文章主要給大家介紹了關(guān)于Vue啟動(dòng)失敗報(bào)錯(cuò):Module?not?found:?Error:?Can‘t?resolve?'less-loader'解決的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • Vue 中如何正確引入第三方模塊的方法步驟

    Vue 中如何正確引入第三方模塊的方法步驟

    這篇文章主要介紹了Vue 中如何正確引入第三方模塊的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • vue搜索高亮popsearch組件的實(shí)現(xiàn)示例

    vue搜索高亮popsearch組件的實(shí)現(xiàn)示例

    有時(shí)候給頁(yè)面內(nèi)容添加一個(gè)關(guān)鍵詞搜索功能,如果搜索結(jié)果能夠像瀏覽器搜索一樣高亮顯示,那找起來(lái)就會(huì)很明顯體驗(yàn)會(huì)好很多,本文就來(lái)介紹一下vue搜索高亮popsearch組件的實(shí)現(xiàn)示例,感興趣的可以了解一下
    2023-09-09

最新評(píng)論

岳阳市| 淳化县| 志丹县| 南木林县| 德钦县| 蓬安县| 华宁县| 丹巴县| 奎屯市| 滦平县| 舞钢市| 田阳县| 当阳市| 内乡县| 获嘉县| 青州市| 白城市| 锡林浩特市| 蒙城县| 普宁市| 无锡市| 正宁县| 荣昌县| 聊城市| 开远市| 中阳县| 浏阳市| 桐乡市| 乡宁县| 盘锦市| 阳西县| 循化| 建德市| 长海县| 讷河市| 衡阳市| 五华县| 清原| 绥中县| 和田县| 独山县|