欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue父組件給子組件的組件傳值provide inject的方法

 更新時(shí)間:2019年10月23日 15:11:46   作者:吼吼醬  
在本篇文章里小編給大家整理的是一篇關(guān)于vue父組件給子組件的組件傳值provide inject的方法,需要的朋友們學(xué)習(xí)下。

一般情況下我們父子之間的傳值用的是props,這個(gè)就不多說(shuō)了,但是如果想讓父給子組件的組件傳值怎么辦呢,這里我們就可以用到 provide 和 inject(依賴注入)

provide/inject需要一起使用,我們可以從父組件的provide傳值,子組件或者孫組件,就可以用inject來(lái)接受子組件的provide屬性值

具體的可以看官網(wǎng)介紹provide/inject:https://cn.vuejs.org/v2/api/#provide-inject

下面我們可以寫個(gè)簡(jiǎn)單的例子來(lái)演示一下

父組件parent,我們?cè)诶锩嬉肓艘粋€(gè)子組件provideChild

<template>
  <div>
    <button @click="add">點(diǎn)擊增加</button>
    <provideChild/>
  </div>
</template>
<script>
import provideChild from '@/components/provideChild'
export default {
  components:{provideChild},
  data () {
    return {
      foo:5
    }
  },
  //依賴注入傳值
  provide(){
    return{
      newFoo:this.foo
    }
  },
  methods:{
    add(){
      this.foo ++
    },
  }
}
</script>
  

子組件provideChild,我們同時(shí)又在子組件里面引入了一個(gè)他的組件

我們可以看到他的打印出注入的newFoo值5

 

<template>
<section>
  <div>我是子組件:{{newFoo}}</div>
  <childChild/>
</section>
</template>
<script>
import childChild from '@/components/childChild'
export default {
  components:{
    childChild
  },
  inject:['newFoo'],
  mounted(){
    console.log(this.newFoo)
  },
  
}
</script>

孫子組件childChild

<template>
  <div>我是子組件的組件:{{newFoo}}</div>
</template>
<script>
export default {
  inject:['newFoo'],
}
</script>
  

接下來(lái)我們可以看一下頁(yè)面的

是可以展示的出來(lái)的,但是我們點(diǎn)擊增加的時(shí)候,子組件們都沒(méi)有響應(yīng),如果此時(shí)你有好好看文檔的話,就應(yīng)該猜出為什么了

provide必須是個(gè)對(duì)象inject的綁定值才可以響應(yīng),那么我們可以試一試

//parent父組件的寫法
<template>
  <div>
    <button @click="add">點(diǎn)擊增加</button>
    <provideChild/>
  </div>
</template>
<script>
import provideChild from '@/components/provideChild'
export default {
  components:{provideChild},
  data () {
    return {
      fooObj:{
        foo:5
      }
    }
  },
  //依賴注入傳值
  provide(){
    return{
      newFoo:this.fooObj
    }
  },
  methods:{
    add(){
      this.fooObj.foo ++
    },
  }
}
</script>

//子組件provideChild
<template>
<section>
  <div>我是子組件:{{newFoo.foo}}</div>
  <childChild/>
</section>
</template>
<script>
import childChild from '@/components/childChild'
export default {
  components:{
    childChild
  },
  inject:['newFoo'],
  mounted(){
    console.log(this.newFoo)
  },
  
}
</script>

//孫子組件childChild
<template>
  <div>我是子組件的組件:{{newFoo.foo}}</div>
</template>
<script>
export default {
  inject:['newFoo'],
}
</script>

這樣我們就可以操作父組件的添加方法,得到子孫組件的響應(yīng)

以上就是本次介紹的全部相關(guān)知識(shí)點(diǎn),感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。

相關(guān)文章

  • vue如何利用axios調(diào)用后臺(tái)api接口

    vue如何利用axios調(diào)用后臺(tái)api接口

    這篇文章主要介紹了vue如何利用axios調(diào)用后臺(tái)api接口問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Vue3中Vuex狀態(tài)管理學(xué)習(xí)實(shí)戰(zhàn)示例詳解

    Vue3中Vuex狀態(tài)管理學(xué)習(xí)實(shí)戰(zhàn)示例詳解

    這篇文章主要為大家介紹了Vue3中Vuex狀態(tài)管理學(xué)習(xí)實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • VUE前后端學(xué)習(xí)tab寫法實(shí)例

    VUE前后端學(xué)習(xí)tab寫法實(shí)例

    在本篇文章里小編給大家分享了關(guān)于VUE前后端學(xué)習(xí)tab寫法實(shí)例以及相關(guān)知識(shí)點(diǎn),需要的朋友們參考下。
    2019-08-08
  • Vue中使用js-cookie詳情

    Vue中使用js-cookie詳情

    這篇文章主要介紹了Vue中使用js-cookie詳情,文章圍繞js-cookie的相關(guān)資料展開(kāi)詳細(xì)內(nèi)容具有一定的的參考價(jià)值,需要的小伙伴可以參考一下
    2022-03-03
  • vue3?setup語(yǔ)法糖之組件傳參(defineProps、defineEmits、defineExpose)示例詳解

    vue3?setup語(yǔ)法糖之組件傳參(defineProps、defineEmits、defineExpose)示例詳

    defineProps?和?defineEmits?都是只能在?<script?setup>?中使用的編譯器宏,他們不需要導(dǎo)入,且會(huì)隨著?<script?setup>?的處理過(guò)程一同被編譯掉,這篇文章主要介紹了vue3?setup語(yǔ)法糖之組件傳參(defineProps、defineEmits、defineExpose)示例詳解,需要的朋友可以參考下
    2023-01-01
  • Vue項(xiàng)目自動(dòng)轉(zhuǎn)換 px 為 rem的實(shí)現(xiàn)方法

    Vue項(xiàng)目自動(dòng)轉(zhuǎn)換 px 為 rem的實(shí)現(xiàn)方法

    這篇文章主要介紹了Vue項(xiàng)目自動(dòng)轉(zhuǎn)換 px 為 rem的實(shí)現(xiàn)方法,本文是通過(guò)一系列的配置后,轉(zhuǎn)換成熱門,具體內(nèi)容詳情大家跟隨小編一起通過(guò)本文學(xué)習(xí)吧
    2018-10-10
  • Vue實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)文字顯示懸浮框效果的示例代碼

    Vue實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)文字顯示懸浮框效果的示例代碼

    這篇文章主要介紹了Vue實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)文字顯示懸浮框效果,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Vue中組件的傳值方式詳解

    Vue中組件的傳值方式詳解

    這篇文章主要介紹了Vue中組件的傳值方式詳解,Vue中最常見(jiàn)的組件之間的通信方式有12種,今天我們會(huì)詳細(xì)講解父?jìng)髯觩rops方式和子傳父emit以及非父子組件傳值,需要的朋友可以參考下
    2023-08-08
  • 基于vue寫一個(gè)全局Message組件的實(shí)現(xiàn)

    基于vue寫一個(gè)全局Message組件的實(shí)現(xiàn)

    這篇文章主要介紹了基于vue寫一個(gè)全局Message組件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • VUE中使用TypeScript裝飾器實(shí)現(xiàn)表單驗(yàn)證的全過(guò)程

    VUE中使用TypeScript裝飾器實(shí)現(xiàn)表單驗(yàn)證的全過(guò)程

    這篇文章主要給大家介紹了關(guān)于如何在VUE中使用TypeScript裝飾器實(shí)現(xiàn)表單驗(yàn)證的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論