小程序生命周期(onLaunch、onShow、onHide、onReady、onLoad、onUnloa)


(1)onlaunch:當小程序初始化完成時,會觸發 onLaunch(全局只觸發一次)(app.js);
(2)onLoad: 頁面加載
小程序注冊完成后,加載頁面,觸發onLoad方法。一個頁面只會調用一次,可以在 onLoad 中獲取打開當前頁面所調用的 query 參數(頁面js)。
(3)onShow: 頁面顯示
頁面載入后觸發onShow方法,顯示頁面。每次打開頁面都會調用一次(比如當小程序有后台進入到前台運行或重新進入頁面時)。
(4)onReady: 首次顯示頁面,頁面初次渲染完成,會觸發onReady方法,渲染頁面元素和樣式,一個頁面只會調用一次,代表頁面已經准備妥當,可以和視圖層進行交互。對界面的設置如wx.setNavigationBarTitle請在onReady之后設置。
(5)onHide: 頁面隱藏
當navigateTo或底部tab切換時調用。
(6)onUnload: 頁面卸載
當使用重定向方法wx.redirectTo(OBJECT)或關閉當前頁返回上一頁wx.navigateBack的時候調用。
基本上可以說執行順序為onLaunch–onLoad–onShow–onReady–onHide.
雖然說onLaunch在onLoad之前執行,但是在onLaunch里請求獲取是否有權限,等待返回值的時候Page里的onLoad事件就已經執行了。
解決辦法:
在APP里面onLanch中的網絡請求中設置判斷

if (this.userInfoReadyCallback) {
   this.userInfoReadyCallback(res)
}


在page的onLoad中設置一個回調

app.userInfoReadyCallback = res => {
   if (res != '') {
     console.log("app.globalData.userInfo")
   }
}

 

 

.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM