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

vue3?使用provide?inject父子組件傳值失敗且子組件不響應(yīng)

 更新時(shí)間:2023年08月22日 14:23:26   作者:_Jyann_  
這篇文章主要介紹了vue3使用provide?inject父子組件傳值傳不過(guò)去且傳遞后子組件不具備響應(yīng)性問(wèn)題解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

1.普通傳值

傳遞普通值,直接父級(jí)

provide(/* 注入名 */ 'message', /* 值 */ 'hello!')

子級(jí):

const message = inject('message')

2.通過(guò)axios異步獲取數(shù)據(jù)后傳值

問(wèn)題:

在項(xiàng)目中一般是通過(guò)接口請(qǐng)求到數(shù)據(jù)后再傳遞給子級(jí),provide和inject如果直接再調(diào)用接口的方法內(nèi)傳值會(huì)報(bào)警告,而且值也傳遞不過(guò)去。就是說(shuō)provide()必須在setup根節(jié)點(diǎn)處才能使用,在方法里面用是不行的

但是,直接在setup根節(jié)點(diǎn)處傳遞,由于數(shù)據(jù)是異步獲取的,直接傳遞時(shí)數(shù)據(jù)是還沒(méi)有值的,傳遞過(guò)去的都是聲明時(shí)的初始值。

解決:

使用方法包裝需要傳遞的值,然后provide()傳遞過(guò)去的是方法,inject()時(shí)通過(guò)方法調(diào)用獲取值

父級(jí):

const provideData = () =>{
? return {
? ? columns: columns.value,
? ? data: resourceData.value,
? ? pageNum: pageNum.value,
? ? total: total.value,
? ? pageSize: pageSize.value
? }
}
provide('provideData',provideData);
子級(jí)獲?。?
const provideData = inject('provideData');
const columns = provideData().columns;
const data = provideData().data;
const total = provideData().total;
const pageNum = provideData().pageNum;
const pageSize = provideData().pageSize;

3.父組件值更改后,子組件的值不具備響應(yīng)性

vue本身就是這樣設(shè)計(jì)的,注入后子組件的值不具有響應(yīng)性,但是我們可以進(jìn)行處理

以方法形式傳遞值

const provideData = () =>{
  return {
    columns: ()=>columns.value,
    data: ()=>resourceData.value,
    pageNum: ()=>pageNum.value,
    total: ()=>total.value,
    pageSize: ()=>pageSize.value
  }
}
provide('provideData',provideData);

子組件中再通過(guò)方法進(jìn)行調(diào)用:

const provideData = inject('provideData');
const columns = computed(() => provideData().columns())
const data = computed(() => provideData().data())
const total = computed(() => provideData().total())
const pageNum = computed(() => provideData().pageNum())
const pageSize = computed(() => provideData().pageSize())

以對(duì)象形式傳遞值

父組件:

const provideData = () =>{
  return {
    data:{
      columns: columns.value,
      data: resourceData.value,
      pageNum: pageNum.value,
      total: total.value,
      pageSize: pageSize.value
    }
  }
}
provide('provideData',provideData);

子組件:

const provideData = inject('provideData');
const columns = computed(() => provideData().data.columns)
const data = computed(() => provideData().data.data)
const total = computed(() => provideData().data.total)
const pageNum = computed(() => provideData().data.pageNum)
const pageSize = computed(() => provideData().data.pageSize)

以上就是vue3 使用provide inject父子組件傳值傳不過(guò)去且傳遞后子組件不具備響應(yīng)性的詳細(xì)內(nèi)容,更多關(guān)于vue3 使用provide inject父子組件傳值傳不過(guò)去且傳遞后子組件不具備響應(yīng)性的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 深度解析Vue3組合式API的核心概念、使用場(chǎng)景和最佳實(shí)踐

    深度解析Vue3組合式API的核心概念、使用場(chǎng)景和最佳實(shí)踐

    Vue?3帶來(lái)的最大變革之一就是組合式API,不僅解決了Options?API在大型項(xiàng)目中的局限性,更為開發(fā)者提供了一種更靈活、更優(yōu)雅的代碼組織方式,下面小編就為大家簡(jiǎn)單介紹一下吧
    2025-11-11
  • VSCode Vue開發(fā)推薦插件和VSCode快捷鍵(小結(jié))

    VSCode Vue開發(fā)推薦插件和VSCode快捷鍵(小結(jié))

    這篇文章主要介紹了VSCode Vue開發(fā)推薦插件和VSCode快捷鍵(小結(jié)),文中通過(guò)圖文表格介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Vue中Axios中取消請(qǐng)求及阻止重復(fù)請(qǐng)求的方法

    Vue中Axios中取消請(qǐng)求及阻止重復(fù)請(qǐng)求的方法

    為了防止用戶在網(wǎng)絡(luò)不好或者其他情況下短時(shí)間內(nèi)重復(fù)進(jìn)行接口請(qǐng)求,重復(fù)發(fā)送多次請(qǐng)求,本文主要介紹了Vue中Axios中取消請(qǐng)求及阻止重復(fù)請(qǐng)求的方法,感興趣的可以了解一下
    2022-02-02
  • vue開發(fā)中遇到的問(wèn)題總結(jié)

    vue開發(fā)中遇到的問(wèn)題總結(jié)

    在本篇文章里小編給大家分享的是關(guān)于vue開發(fā)中遇到的問(wèn)題總結(jié),有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-04-04
  • Vue3中數(shù)據(jù)響應(yīng)式原理與高效數(shù)據(jù)操作全解析

    Vue3中數(shù)據(jù)響應(yīng)式原理與高效數(shù)據(jù)操作全解析

    這篇文章主要為大家詳細(xì)介紹了Vue3中數(shù)據(jù)響應(yīng)式原理與高效數(shù)據(jù)操作的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • vue滾動(dòng)固定頂部及修改樣式的實(shí)例代碼

    vue滾動(dòng)固定頂部及修改樣式的實(shí)例代碼

    這篇文章主要介紹了vue滾動(dòng)固定頂部及修改樣式,本文給大家提到了滾動(dòng)固定位置有多種方法,感興趣的朋友跟隨小編一起看看吧
    2019-05-05
  • 在vue中獲取wangeditor的html和text的操作

    在vue中獲取wangeditor的html和text的操作

    這篇文章主要介紹了在vue中獲取wangeditor的html和text的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • Vue3中Hooks封裝的技巧詳解

    Vue3中Hooks封裝的技巧詳解

    這篇文章主要來(lái)和大家分享一些關(guān)于 Vue3中Hooks封裝的技巧,希望能夠?yàn)榇蠹以?nbsp;Vue 3 項(xiàng)目中更好地利用 Hooks 提供一些思路和實(shí)踐經(jīng)驗(yàn)
    2023-12-12
  • iview實(shí)現(xiàn)select tree樹形下拉框的示例代碼

    iview實(shí)現(xiàn)select tree樹形下拉框的示例代碼

    這篇文章主要介紹了iview實(shí)現(xiàn)select tree樹形下拉框的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • Vue 獲取數(shù)組鍵名的方法

    Vue 獲取數(shù)組鍵名的方法

    本篇文章主要介紹了Vue 獲取數(shù)組鍵名的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06

最新評(píng)論

铜鼓县| 南川市| 南开区| 托克托县| 罗山县| 嘉鱼县| 鸡西市| 平昌县| 靖边县| 泾源县| 巨鹿县| 鄂托克旗| 闻喜县| 水富县| 义马市| 上栗县| 兴和县| 奇台县| 华容县| 霍山县| 石嘴山市| 德昌县| 都昌县| 广西| 镇雄县| 永城市| 游戏| 焦作市| 博湖县| 衢州市| 海口市| 彩票| 太和县| 阳春市| 读书| 庐江县| 云阳县| 甘谷县| 长春市| 陆丰市| 永胜县|