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

vue子組件設計provide和inject理解使用

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

引言

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

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

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

舉個例子說明

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

調用組件

——大清帝國:qing-dynasty.vue

<!--組件的嵌套關系-->
<kangxi>
  <yongzheng>
    <qianlong></qianlong>
  </yongzheng>
</kangxi>

定義爺爺組件

——康熙皇帝:kangxi.vue

<template>
  <div class="kangxi">
    康熙皇帝
    <slot></slot>
  </div>
</template>
<script>
  export default {
    name: 'kangxi',
    // 爺爺對兒子提供‘kangxiToYongzheng'
    // 對孫子提供‘kangxiToQianlong'
    provide: {
      kangxiToYongzheng: '康熙皇帝對雍正皇帝說:"你是我兒子"',
      kangxiToQianlong: '康熙皇帝對乾隆皇帝說:"你是我孫子"'
    },
    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'],
    // 同時,兒子也給孫子提供‘yongzhengToQianlong'
    provide: {
      yongzhengToQianlong: '雍正皇帝對乾隆皇帝說:"你是我兒子"'
    },
    data () {
      return {}
    },
    created () {
      // 可以通過this獲取
      console.log(this.kangxiToYongzheng, ' 雍正皇帝回答:"是的,爸爸"')
    }
  }
</script>
<style lang="scss">
  .yongzheng {
    width: 160px;
    height: 100px;
    margin: 0 auto;
    text-align: center;
    background-color: #84b5ff;
  }
</style>

// 打印結果

康熙皇帝對雍正皇帝說:"你是我兒子"  雍正皇帝回答:"是的,爸爸" 

定義孫子組件

——乾?。簈ianlong.vue

<template>
  <div class="qianlong">
    乾隆皇帝
  </div>
</template>
<script>
  export default {
    name: 'qianlong',
    // 孫子接收爺爺的‘kangxiToQianlong'、父親的‘yongzhengToQianlong'
    inject: ['kangxiToQianlong', 'yongzhengToQianlong'],
    data () {
      return {}
    },
    created () {
      // 可以通過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>

 // 打印結果

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

以上就是vue子組件設計provide和inject理解使用的詳細內容,更多關于vue子組件設計provide inject的資料請關注腳本之家其它相關文章!

相關文章

  • Vuex unknown action type報錯問題及解決

    Vuex unknown action type報錯問題及解決

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

    深入理解vue3中的reactive()

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

    Vue中v-for的數據分組實例

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

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

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

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

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

    vue開發(fā)中關于axios的封裝過程

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

    詳解vue-router的Import異步加載模塊問題的解決方案

    這篇文章主要介紹了詳解vue-router的Import異步加載模塊問題的解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • Vue啟動失敗報錯:Module?not?found:?Error:?Can‘t?resolve?'less-loader'解決

    Vue啟動失敗報錯:Module?not?found:?Error:?Can‘t?resolve?&apos

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

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

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

    vue搜索高亮popsearch組件的實現示例

    有時候給頁面內容添加一個關鍵詞搜索功能,如果搜索結果能夠像瀏覽器搜索一樣高亮顯示,那找起來就會很明顯體驗會好很多,本文就來介紹一下vue搜索高亮popsearch組件的實現示例,感興趣的可以了解一下
    2023-09-09

最新評論

当阳市| 通山县| 体育| 南木林县| 柯坪县| 改则县| 抚州市| 方城县| 宁阳县| 墨竹工卡县| 南昌市| 贵德县| 鸡泽县| 蒙阴县| 海门市| 建平县| 大埔县| 泽库县| 凉城县| 宣恩县| 蓬溪县| 嘉义市| 阳山县| 肃宁县| 龙山县| 定边县| 孝昌县| 兴山县| 井冈山市| 蚌埠市| 廉江市| 林芝县| 博湖县| 淮北市| 岗巴县| 兴义市| 揭阳市| 木里| 桦南县| 榆社县| 阳西县|