国产精品7777777,国产亚洲第一页,亚洲激情网,三级黄色在线免费观看,91男生福利,91男生福利,亚洲天堂福利

龍巖易富通網(wǎng)絡科技有限公司

龍巖小程序開發(fā),龍巖分銷系統(tǒng)

uniapp中onLaunch和onload的先后執(zhí)行順序

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

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

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

代碼如下(示例)

// 讓頁面的 onLoad 在 onLaunch 之后執(zhí)行

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

    Vue.prototype.$isResolve = resolve

})


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

代碼如下(示例):

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

onLaunch () {

        //發(fā)送請求

    uni.request({

        success: loginRes => {       

            // 業(yè)務邏輯

            // ...

            // 當執(zhí)行完業(yè)務邏輯,需要同步onload時,調(diào)用一下

            this.$isResolve()           

        }

    })

}


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

代碼如下(示例):

//onLoad 生命周期函數(shù)前,加async/await,用此方法同步執(zhí)行順序

        async onLoad() {

               //async/await,當執(zhí)行完APP生命周期中的onlaunch,再執(zhí)行頁面中的業(yè)務邏輯

               await this.$onLaunched;

              

               //執(zhí)行頁面中的業(yè)務邏輯

               //...

        },


個人理解

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


版權(quán)屬于:瞭月

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


贊 (

發(fā)表評論

定边县| 五常市| 文安县| 来宾市| 随州市| 林芝县| 威远县| 普兰县| 前郭尔| 宣武区| 西乌珠穆沁旗| 益阳市| 徐闻县| 株洲市| 长沙市| 高台县| 庆安县| 瓦房店市| 鄂托克旗| 讷河市| 泰顺县| 阿拉善右旗| 扎赉特旗| 隆化县| 正定县| 临高县| 开封市| 吉林省| 永登县| 容城县| 玉林市| 麻江县| 二手房| 桂林市| 宁远县| 定陶县| 敦煌市| 昭苏县| 赤水市| 巧家县| 治多县|