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

vue3 onMounted異步函數(shù)同步請求async/await實現(xiàn)

 更新時間:2023年07月03日 11:05:30   作者:CUI_PING  
這篇文章主要為大家介紹了vue3 onMounted初始化數(shù)據(jù)異步函數(shù)/同步請求async/await實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

項目需求

在項目中遇到一個問題,就是打開頁面時,顯示的不正確,在onMounted(掛載完數(shù)據(jù)) 中初始化來的數(shù)據(jù)沒渲染上, 這是因為,數(shù)據(jù)重新賦值沒在onUpdated(更新完data 數(shù)據(jù))之前, 而是在之后執(zhí)行的, 需要在onMounted鉤子函數(shù)中增加async/await;

特別注意: 在onMounted中,從API請求到的數(shù)據(jù), 賦值給響應(yīng)式data 數(shù)據(jù),建議只賦值一次

代碼

//導(dǎo)入使用的API 
import { reactive, toRefs, getCurrentInstance,onBeforeMount, onMounted,onBeforeUpdate,onUpdated,onBeforeUnmount, onUnmounted, watch,computed} from "vue"
 export default{
   components: {xx},
   props: {},
   setup(props, context){
      console.log("*******setup******")
      //獲取當(dāng)前實例
      const {ctx, proxy} = getCurrentInstance()
      // 定義響應(yīng)式data 數(shù)據(jù)
      const state = reactive({
      })
      console.log("*******end reactive******")
      // 定義方法
      const methods = {
         async dealData(firstResData){
           if(firstResData.status == "finished"){
              state.collection_data = firstResData.data
              state.colection_id = firstResData.id
              await get(api+state.colection_id).then((resData) => {
                state.layoutX = resData.x
                state.layoutY = resData.y
                console.log("state.layoutX"+state.layoutX)
                console.log("state.layoutY"+state.layoutY)
             })
           }
        },
        // ***********async/await 實現(xiàn)請求同步功能**************
        async refreshData(){
          await get(api).then(firstResData=>{
              console.log("state.curStatus="+firstResData.status)
              methods.dealData(firstResData)
          }).catch(()=>{
          })
        },
      }
      console.log("*******end methods******")
      onBeforeMount(()=>{
        // dom 掛載前
        console.log("*******onBeforeMount******")
      })
      onMounted(async()=>{
        //dom 掛載后
        console.log("*******onMounted******")
        state.collection_id = proxy.$route.query.id
        await methods.init()
      })
      onBeforeUpdate(()=>{
        //對響應(yīng)式data數(shù)據(jù)有更新, 更新前
        console.log("*******onBeforeUpdate******")
      })
      onUpdated(()=>{
        //對響應(yīng)式data數(shù)據(jù)有更新, 更新后
        console.log("*******onUpdated******")
      })
      onBeforeUnmount(()=>{
        //銷毀頁面組件前, 即關(guān)閉
        console.log("*******onBeforeUnmount******")
      })
      onUnmounted(()=>{
        //銷毀后
        console.log("*******onUnmounted******")
      })
      return {
        ...toRefs(state),
        ...methods,
      }
  }

打印結(jié)果

*******setup******
*******end reactive******
*******end methods******
*******onBeforeMount******
*******onMounted******
*******onBeforeUpdate******
*******onUpdated******
state.curStatus=3
state.layoutX150
state.layoutY280
*******onBeforeUpdate******
##############################以下是子組件中打印的信息,可以不關(guān)注
*******setup in MyXgPlayer******
props.layoutX=150
props.layoutY=280
*******onBeforeMount in MyXgPlayer******
*******setup in MyXgPlayer******
props.layoutX=150
props.layoutY=280
*******onBeforeMount in MyXgPlayer******
*******onUpdated******
*******onMounted in MyXgPlayer*******
*******onMounted in MyXgPlayer*******

以上就是vue3 onMounted異步函數(shù)同步請求async/await實現(xiàn)的詳細內(nèi)容,更多關(guān)于vue3 onMounted async/await的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺析vue中常見循環(huán)遍歷指令的使用 v-for

    淺析vue中常見循環(huán)遍歷指令的使用 v-for

    這篇文章主要介紹了vue中常見循環(huán)遍歷指令的使用 v-for,包括v-for遍歷數(shù)組,v-for遍歷json對象,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2018-04-04
  • vue大型項目之分模塊運行/打包的實現(xiàn)

    vue大型項目之分模塊運行/打包的實現(xiàn)

    這篇文章主要介紹了vue大型項目之分模塊運行/打包的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Vue-pdf實現(xiàn)在線預(yù)覽PDF文件

    Vue-pdf實現(xiàn)在線預(yù)覽PDF文件

    這篇文章主要為大家詳細介紹了Vue-pdf實現(xiàn)在線預(yù)覽PDF文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Vue axios 將傳遞的json數(shù)據(jù)轉(zhuǎn)為form data的例子

    Vue axios 將傳遞的json數(shù)據(jù)轉(zhuǎn)為form data的例子

    今天小編就為大家分享一篇Vue axios 將傳遞的json數(shù)據(jù)轉(zhuǎn)為form data的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Jenkins自動化部署Vue項目的方法實現(xiàn)

    Jenkins自動化部署Vue項目的方法實現(xiàn)

    本文主要介紹了Jenkins自動化部署Vue項目的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue如何遍歷data所有變量并賦值

    vue如何遍歷data所有變量并賦值

    這篇文章主要介紹了vue如何遍歷data所有變量并賦值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue3中處理不同數(shù)據(jù)結(jié)構(gòu)JSON的實現(xiàn)

    vue3中處理不同數(shù)據(jù)結(jié)構(gòu)JSON的實現(xiàn)

    本文主要介紹了vue3中處理不同數(shù)據(jù)結(jié)構(gòu)JSON的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • vue 開發(fā)企業(yè)微信整合案例分析

    vue 開發(fā)企業(yè)微信整合案例分析

    這篇文章主要介紹了vue 開發(fā)企業(yè)微信整合,結(jié)合具體案例形式分析了vue.js使用企業(yè)微信JSSDK實現(xiàn)手機端程序可以和企業(yè)微信進行整合功能的相關(guān)操作技巧,需要的朋友可以參考下
    2019-12-12
  • vue?router進行路由跳轉(zhuǎn)并攜帶參數(shù)的實例詳解(params/query)

    vue?router進行路由跳轉(zhuǎn)并攜帶參數(shù)的實例詳解(params/query)

    在使用`router.push`進行路由跳轉(zhuǎn)到另一個組件時,可以通過`params`或`query`來傳遞參數(shù),這篇文章主要介紹了vue?router進行路由跳轉(zhuǎn)并攜帶參數(shù)(params/query),需要的朋友可以參考下
    2023-09-09
  • Vue中使用icon的幾種常用方法

    Vue中使用icon的幾種常用方法

    這篇文章主要給大家介紹了關(guān)于Vue中使用icon的幾種常用方法,icon圖標的使用 Vue是現(xiàn)在前端最流行的框架之一,作為前端開發(fā)人員應(yīng)該要熟練的掌握它,需要的朋友可以參考下
    2023-07-07

最新評論