<rt id="aw0oc"><small id="aw0oc"></small></rt>
<acronym id="aw0oc"><center id="aw0oc"></center></acronym>
<acronym id="aw0oc"><center id="aw0oc"></center></acronym><tr id="aw0oc"><xmp id="aw0oc"><rt id="aw0oc"><center id="aw0oc"></center></rt>

龍巖易富通網絡科技有限公司

龍巖小程序開發,龍巖分銷系統

uniapp中onLaunch和onload的先后執行順序

2023.06.02 | 935閱讀 | 0條評論 | 小程序

onLaunch與onload分別是APP生命周期與頁面生命周期,理論上應該先執行onLaunch 后執行頁面生命周期onLoad。然而實際上并非如此,在執行onlaunch的同時,也會執行onLoad生命周期,而在實際開發中往往需要優先執行onlaunch后再執行onLoad,因此可以使用當前方法解決。

一、main.js添加如下代碼?

代碼如下(示例)

// 讓頁面的 onLoad 在 onLaunch 之后執行

Vue.prototype.$onLaunched = new Promise(resolve => {

    Vue.prototype.$isResolve = resolve

})


二、在 App.vue 的 onLaunch 中增加代碼 this.$isResolve();

代碼如下(示例):

//app.vue生命周期中,onlaunch執行時,執行this.$isResolve()

onLaunch () {

        //發送請求

    uni.request({

        success: loginRes => {       

            // 業務邏輯

            // ...

            // 當執行完業務邏輯,需要同步onload時,調用一下

            this.$isResolve()           

        }

    })

}


三、在頁面 onLoad 中增加代碼 await this.$onLaunched;

代碼如下(示例):

//onLoad 生命周期函數前,加async/await,用此方法同步執行順序

        async onLoad() {

               //async/await,當執行完APP生命周期中的onlaunch,再執行頁面中的業務邏輯

               await this.$onLaunched;

              

               //執行頁面中的業務邏輯

               //...

        },


個人理解

1先給onLaunch方法套一個promise實例,執行成功后再執行全局掛載的方法,標識當前已經執行完畢。
2.在頁面中利用async/await 同步執行代碼的方法,實現onLaunch 在 onLoad 之后執行


版權屬于:瞭月

本文鏈接:https://www.lervor.com/archives/128/


贊 (

發表評論

日本熟妇熟女四五十路,国模无码国产精品视频,午夜超碰影院av,日韩视频中文字幕在线一区,136福利导航,色q的视频在线观看,国产末成年呦交在线天,色欲AV蜜臀AV在线播放,av中文在线最新,一级丰满少妇人妻hd高清,在线观看国产成人av天堂,少妇白洁全集阅读,无码人妻精品一区二区中文
<rt id="aw0oc"><small id="aw0oc"></small></rt>
<acronym id="aw0oc"><center id="aw0oc"></center></acronym>
<acronym id="aw0oc"><center id="aw0oc"></center></acronym><tr id="aw0oc"><xmp id="aw0oc"><rt id="aw0oc"><center id="aw0oc"></center></rt>