中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue3中provide和inject怎么用

發布時間:2021-07-02 09:37:06 來源:億速云 閱讀:149 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關vue3中provide和inject怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

1.provide 和 inject 的講解

provide和inject可以實現嵌套組件之間進行傳遞數據。
這兩個函數都是在setup函數中使用的。
父級組件使用provide向下進行傳遞數據;
子級組件使用inject來獲取上級組件傳遞過來的數據;
需要注意的是:
1==>provide只能夠向下進行傳遞數據
2==>在使用provide和inject的時候需從vue中引入

2.provide 和 inject 的使用

我們將創建2個組件
兒子組件ErZi.vue
孫子組件SunZI.vue
我們將在父級組件中向其子代傳遞數據;
那么兒子、孫子組件都將會接受到;
并且在視圖上顯示出來

3.父組件

<template>
  <erzi-com></erzi-com>
</template>
<script lang="ts">
import ErZi  from "../components/ErZi.vue"
import {provide, ref} from "vue"
export default {
  name:"About",
  components:{
    'erzi-com':ErZi
  },
  setup(){
    let giveSunziData=ref({
       with:100,
       height:50,
       bg:'pink'
    })
    // 第一個參數是是共享數據的名稱(giveSunzi)
    // 第二個參數是共享的數據(giveSunziData)
    provide('giveSunzi',giveSunziData)
  }
}
</script>

父組件向其子代組件傳遞了一個對象
provide是在setUp這個組合APi中使用的
provide的使用方式:
provide('共享數據名稱',共享值)
共享值可以是字符串、數字、對象、數組

子組件在進行接收到的時候;
let xxx=inject('共享數據名稱');

4.兒子組件

<template>
    <div>
      <h3>兒子組件</h3>
      <div>得到的值:{{getFaytherData}}</div>
    </div>
    <hr/>
    <sun-con></sun-con>
</template>
<script lang="ts">
import { defineComponent, inject } from 'vue';
import SunZI from "./SunZI.vue"
export default defineComponent({
  name: 'ErZi',
   components:{
     'sun-con':SunZI
   },
    setup(){
      let getFaytherData=inject('giveSunzi');
      return { getFaytherData }
    }
});
</script>

5.孫子組件

<template>
    <div>
         <h3>孫子組件</h3>
         <div>得到的值{{getYeYeData}}</div>
    </div>
</template>
<script lang="ts">
import { defineComponent,inject } from 'vue';
export default defineComponent({
   setup(){
     let getYeYeData=inject('giveSunzi');
    return { getYeYeData }
   }
});
</script>

6.效果圖

vue3中provide和inject怎么用

7.父組件可以傳遞多個rovide嗎?

有些時候,我們的父組件可能需要傳遞多個rovide;
因為我們想讓數據分開。
此時就需要傳遞多個rovide。
經過實踐,父組件是可以傳遞多個rovide的!!!!
這是沒有沒問題的;

但是個人并不推薦這樣處理
我們可以在傳遞的時候將多個數據進行一次組裝;
組裝好了之后再進行傳遞

8.rovide和inject的引用場景

當父組件有很多數據需要分發給其子代組件的時候,
就可以使用provide和inject。

關于“vue3中provide和inject怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富阳市| 锡林郭勒盟| 晋宁县| 昌黎县| 民丰县| 合山市| 洪雅县| 南通市| 泸水县| 岢岚县| 朝阳市| 鲁山县| 安塞县| 页游| 伊金霍洛旗| 兴化市| 额敏县| 金乡县| 广汉市| 从江县| 奇台县| 勃利县| 胶州市| 桃江县| 沂水县| 资源县| 京山县| 治多县| 营山县| 太康县| 龙游县| 太谷县| 马龙县| 夏津县| 拜城县| 黄梅县| 饶河县| 息烽县| 宜兴市| 惠来县| 延边|