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

vue3父子組件和provide、inject數(shù)據(jù)異步問題及解決

 更新時間:2026年06月30日 10:46:10   作者:西門飄雪01  
這段文章主要討論了Vue3中父組件通過異步獲取后組件數(shù)據(jù)不實時響應的問題,并提出使用watch監(jiān)聽解決方法,同時簡要介紹了Vue3中provide和inject實現(xiàn)響應式傳值的方法

一、vue3父組件數(shù)據(jù)是請求后端獲取的數(shù)據(jù)時

就會出現(xiàn)數(shù)據(jù)不實時響應。因為在獲取數(shù)據(jù)之前子組件已經(jīng)加載,渲染完成了。所以這個時候接受父組件的異步數(shù)據(jù)不會實時更新。

要解決這個問題就得用到watch監(jiān)聽函數(shù)了,利用watch監(jiān)聽父組件傳過來的值,當值發(fā)生變化時,執(zhí)行相應的操作。

父組件:

<script setup>
let result=ref()
axios({
  method: method,
  url: url,
  data:data,
  headers: {
      'Content-Type':'application/json'
  }
}).then((res)=>{
//獲取到數(shù)據(jù)之后,賦值給定義好的變量。
result.value=res
})
</script>

 子組件:

//子組件利用defineProps來接受父組件傳過來的值
<script setup>
import {defineProps,toRefs,watch} from 'vue'
const props=defineProps({
result:Object//父組件傳過來的值
})
let {result}=toRefs(props)//解構props拿到result
//然后watch監(jiān)聽
watch(()=>props.result,(newval,oldval)=>{
console.log(newval)
console.log(oldval)
//newval就是最新更新的result。
})
</script>

二、vue3.0中provide和inject實現(xiàn)響應式傳值

父組件中:

<template>
  <div>
    <ChildComponent />
  </div>
</template>
<script setup>
import { ref, provide } from 'vue';
import ChildComponent from './ChildComponent.vue';
const asyncData = ref('');
// 模擬一個異步獲取數(shù)據(jù)的函數(shù)
const fetchAsyncData = async () => {
      asyncData.value = await Promise.resolve('異步數(shù)據(jù)');
};
// 在setup中調(diào)用異步函數(shù)
fetchAsyncData();
// 使用provide提供異步數(shù)據(jù)
provide('asyncData', asyncData);
</script>

子組件中:

<template>
  <div>
    異步數(shù)據(jù): {{ asyncData }}
  </div>
</template>
<script setup>
import { inject, ref, watch } from 'vue';
// 使用inject注入異步數(shù)據(jù)
const asyncData = inject('asyncData');
// 如果需要響應式更新,可以使用watch來監(jiān)聽數(shù)據(jù)變化
watch(asyncData, (newValue) => {
   console.log('異步數(shù)據(jù)更新了:', newValue);
});
</script>

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • vue中table實現(xiàn)真正的跨越全選

    vue中table實現(xiàn)真正的跨越全選

    本文主要介紹了vue中table實現(xiàn)真正的跨越全選,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Vue拖拽組件開發(fā)實例詳解

    Vue拖拽組件開發(fā)實例詳解

    本文重點給大家介紹Vue拖拽組件開發(fā)實例,拖拽的原理是手指在移動的過程中,實時改變元素的位置即top和left值,使元素隨著手指的移動而移動。對實例代碼感興趣的朋友跟隨腳本之家小編一起學習吧
    2018-05-05
  • el-select 的下拉框中新增倆自定義按鈕的操作方法

    el-select 的下拉框中新增倆自定義按鈕的操作方法

    文章介紹了在Element UI的el-select組件中新增自定義按鈕的方法,并詳細說明了設置`popper-append-to-body`屬性為false的重要性,以及如何通過修改樣式來實現(xiàn)自定義按鈕的添加和樣式效果展示,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Vue3 表單輸入綁定的操作方法

    Vue3 表單輸入綁定的操作方法

    本文給大家介紹Vue3 表單輸入綁定的相關操作,本文結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-10-10
  • 源碼分析Vue3響應式核心之reactive

    源碼分析Vue3響應式核心之reactive

    這篇文章主要為大家詳細介紹了Vue3響應式核心之reactive的相關知識,文中的示例代碼講解詳細,對我們學習Vue3有一定的幫助,需要的可以參考一下
    2023-04-04
  • Vue如何指定不編譯的文件夾和favicon.ico

    Vue如何指定不編譯的文件夾和favicon.ico

    這篇文章主要介紹了Vue如何指定不編譯的文件夾和favicon.ico,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 淺談Vue2.4.0 $attrs與inheritAttrs的具體使用

    淺談Vue2.4.0 $attrs與inheritAttrs的具體使用

    這篇文章主要介紹了淺談Vue2.4.0 $attrs與inheritAttrs的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • Vue+Element-ui日歷排班自定義實例代碼

    Vue+Element-ui日歷排班自定義實例代碼

    這篇文章主要給大家介紹了關于Vue+Element-ui日歷排班自定義的相關資料,有現(xiàn)成的日歷插件但是不符合需求,所以項目中使用vue+element的表格組件自己實現(xiàn)一個日歷組件,需要的朋友可以參考下
    2023-09-09
  • vue動態(tài)改變背景圖片demo分享

    vue動態(tài)改變背景圖片demo分享

    今天小編就為大家分享一篇vue動態(tài)改變背景圖片demo分享,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue怎樣獲取當前時間,并且傳遞給后端(不用注解)

    vue怎樣獲取當前時間,并且傳遞給后端(不用注解)

    這篇文章主要介紹了vue怎樣獲得當前時間,并且傳遞給后端(不用注解)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論

禄丰县| 广丰县| 万山特区| 吉林省| 达孜县| 古丈县| 清新县| 新余市| 保德县| 慈溪市| 光山县| 武穴市| 介休市| 铁岭县| 边坝县| 景宁| 东兴市| 堆龙德庆县| 新乐市| 满城县| 旺苍县| 株洲县| 子长县| 阳原县| 邢台市| 明溪县| 土默特左旗| 瑞昌市| 南部县| 周宁县| 三台县| 渭源县| 昌吉市| 黄骅市| 曲沃县| 体育| 银川市| 丹凤县| 民乐县| 桓仁| 深泽县|