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

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ù), 賦值給響應式data 數(shù)據(jù),建議只賦值一次

代碼

//導入使用的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******")
      //獲取當前實例
      const {ctx, proxy} = getCurrentInstance()
      // 定義響應式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(()=>{
        //對響應式data數(shù)據(jù)有更新, 更新前
        console.log("*******onBeforeUpdate******")
      })
      onUpdated(()=>{
        //對響應式data數(shù)據(jù)有更新, 更新后
        console.log("*******onUpdated******")
      })
      onBeforeUnmount(()=>{
        //銷毀頁面組件前, 即關閉
        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******
##############################以下是子組件中打印的信息,可以不關注
*******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)容,更多關于vue3 onMounted async/await的資料請關注腳本之家其它相關文章!

相關文章

  • 解決vue語法會有延遲加載顯現(xiàn){{xxx}}的問題

    解決vue語法會有延遲加載顯現(xiàn){{xxx}}的問題

    今天小編就為大家分享一篇解決vue語法會有延遲加載顯現(xiàn){{xxx}}的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue.js中用webpack合并打包多個組件并實現(xiàn)按需加載

    Vue.js中用webpack合并打包多個組件并實現(xiàn)按需加載

    對于現(xiàn)在前端插件的頻繁更新,我也是無力吐槽,但是既然入了前端的坑就得認嘛,所以多多少少要對組件化有點了解,下面這篇文章主要給大家介紹了在Vue.js中用webpack合并打包多個組件并實現(xiàn)按需加載的相關資料,需要的朋友可以參考下。
    2017-02-02
  • Vuepress使用vue組件實現(xiàn)頁面改造

    Vuepress使用vue組件實現(xiàn)頁面改造

    這篇文章主要為大家介紹了Vuepress使用vue組件實現(xiàn)頁面改造示例過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Vue學習-VueRouter路由基礎

    Vue學習-VueRouter路由基礎

    這篇文章主要介紹了Vue學習-VueRouter路由基礎,路由本質(zhì)上就是超鏈接,xiamian?文章圍繞VueRouter路由的相關資料展開詳細內(nèi)容,需要的小伙伴可以參考一下,希望對你的學習有所幫助
    2021-12-12
  • vue跳轉(zhuǎn)到詳情頁的兩種實現(xiàn)方法

    vue跳轉(zhuǎn)到詳情頁的兩種實現(xiàn)方法

    最近接觸了vue項目,下面這篇文章主要給大家介紹了關于vue跳轉(zhuǎn)到詳情頁的兩種實現(xiàn)方法,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2023-06-06
  • vue組件中點擊按鈕后修改輸入框的狀態(tài)實例代碼

    vue組件中點擊按鈕后修改輸入框的狀態(tài)實例代碼

    要求點擊修改按鈕之后部分輸入框由禁用狀態(tài)變?yōu)榭捎脿顟B(tài)。下面我給大家分享一段實例代碼基于vue組件中點擊按鈕后修改輸入框的狀態(tài),需要的的朋友參考下
    2017-04-04
  • vue中watch監(jiān)聽器用法之deep、immediate、flush

    vue中watch監(jiān)聽器用法之deep、immediate、flush

    Vue是可以監(jiān)聽到多層級數(shù)據(jù)改變的,且可以在頁面上做出對應展示,下面這篇文章主要給大家介紹了關于vue中watch監(jiān)聽器用法之deep、immediate、flush的相關資料,需要的朋友可以參考下
    2022-09-09
  • VUE django 跨域、csrf令牌的問題

    VUE django 跨域、csrf令牌的問題

    在Vue和Django進行前后分離開發(fā)時,經(jīng)常會遇到跨域和CSRF令牌驗證問題,本文詳細介紹了如何在Django后端設置視圖獲取CSRF令牌,并在Vue前端進行配置以確保安全的數(shù)據(jù)交互,文章提供了后端視圖創(chuàng)建、settings配置以及前端axios請求封裝的具體方法
    2024-09-09
  • 詳解Vue ElementUI手動上傳excel文件到服務器

    詳解Vue ElementUI手動上傳excel文件到服務器

    這篇文章主要介紹了詳解Vue ElementUI手動上傳excel文件到服務器,對ElementUI感興趣的同學,可以參考下
    2021-05-05
  • vue中引入圖片的方法示例

    vue中引入圖片的方法示例

    在我們寫vue項目中肯定會用到各種圖片,那么如何更好的使用圖片資源呢?下面這篇文章主要給大家介紹了關于vue中引入圖片的方法,需要的朋友可以參考下
    2023-06-06

最新評論

河源市| 谢通门县| 大足县| 宁化县| 道真| 固始县| 安塞县| 望都县| 开鲁县| 乌恰县| 永胜县| 吉木乃县| 新昌县| 东乌珠穆沁旗| 三门峡市| 郎溪县| 永定县| 涿鹿县| 佛坪县| 蒲城县| 八宿县| 辉县市| 金溪县| 青铜峡市| 离岛区| 淮南市| 美姑县| 肥西县| 北碚区| 体育| 亳州市| 凭祥市| 阿克苏市| 绍兴市| 桓台县| 凤翔县| 和静县| 鸡泽县| 乡宁县| 安图县| 平阴县|