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

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

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

2023.06.02 | 2336閱讀 | 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/


贊 (

發表評論

主站蜘蛛池模板: 久久久久久综合一区中文字幕| 欧美色综合久久久久久| 亚洲色图综合网| 7国产欧美日韩综合天堂中文久久久久 | 狠狠色丁香婷婷综合久久来| 亚洲综合自拍成人| 色综合久久综合中文综合网| 亚洲av综合avav中文| 日韩欧美在线综合网另类| 女人和拘做受全程看视频日本综合a一区二区视频 | 在线综合亚洲中文精品| 伊人久久大香线蕉综合网站| 国产激情电影综合在线看 | 狠狠色丁香婷婷久久综合| 天天影视色香欲综合久久| 亚洲国产综合无码一区| 婷婷综合久久狠狠色99h| 久久99精品综合国产首页| 国产一级a爱做综合| 激情伊人五月天久久综合| 亚洲欧洲日韩国产综合在线二区| 亚洲国产综合无码一区二区二三区| 五月丁香六月综合欧美在线| 欧美日韩国产综合草草| 97久久国产综合精品女不卡 | 久久综合丝袜日本网| 久久久亚洲裙底偷窥综合| 亚洲偷自拍拍综合网| 久久综合给合综合久久| 91精品国产91久久综合| 伊人yinren6综合网色狠狠 | 日日AV色欲香天天综合网| 国产综合免费精品久久久| 狠狠的干综合网| 国产综合无码一区二区三区| 99久久精品国产综合一区| 欧美综合缴情五月丁香六月婷| 久久久久综合国产欧美一区二区| 国产成人综合亚洲欧美天堂| 色综合合久久天天给综看| 99精品国产综合久久久久五月天|