1、小程序的生命周期-App.js
App() 必須在 app.js 中注冊,且不能注冊多個。所以App()方法在一個小程序中有且僅有一個。
App({ onLaunch: function () { console.log('App Launch') this.initCloud(); }, onShow: function () { }, onHide: function () { console.log('App Hide') }, globalData: { hasLogin: false, }, } })
onLaunch 生命周期函數–監聽小程序初始化
當小程序初始化完成時,會觸發 onLaunch(全局只觸發一次)。
onShow 生命周期函數–監聽小程序顯示
當小程序啟動,或從后台進入前台顯示,會觸發 onShow
onHide 生命周期函數–監聽小程序隱藏
當小程序從前台進入后台,會觸發 onHide
onError 錯誤監聽函數
當小程序發生腳本錯誤,或者 api 調用失敗時,會觸發 onError 並帶上錯誤信息
其他 Any 開發者可以添加任意的函數或數據到 Object 參數中,用 this 可以訪問,上面的getPics就是函數, globalData是數據,這里面的函數和數據都是全局的。調用方式:在Pager中通過getApp()方法得到App對象並獲得全局的數據和調用全局的函數。
前台、后台定義: 當用戶點擊左上角關閉,或者按了設備 Home 鍵離開微信,小程序並沒有直接銷毀,而是進入了后台;當再次進入微信或再次打開小程序,又會從后台進入前台。
只有當小程序進入后台一定時間,或者系統資源占用過高,才會被真正的銷毀。
2.小程序頁面的生命周期
Page({ data:{ }, onLoad:function(options){ // 生命周期函數--監聽頁面加載 console.log("test1 onLoad"); }, onReady:function(){ // 生命周期函數--監聽頁面初次渲染完成 console.log("test1 onReady"); }, onShow:function(){ // 生命周期函數--監聽頁面顯示 console.log("test1 onShow"); }, onHide:function(){ // 生命周期函數--監聽頁面隱藏 console.log("test1 onHide"); }, onUnload:function(){ // 生命周期函數--監聽頁面卸載 console.log("test1 onUnload"); }, onPullDownRefresh: function() { // 頁面相關事件處理函數--監聽用戶下拉動作 console.log("test1 onPullDownRefresh"); }, onReachBottom: function() { // 頁面上拉觸底事件的處理函數 console.log("test1 onReachBottom"); } })
onLoad: 頁面加載
一個頁面只會調用一次。接收頁面參數,通過options可以獲取wx.navigateTo和wx.redirectTo及<navigator/>中的 query。
onShow: 頁面顯示
每次打開頁面都會調用一次。
onReady: 頁面初次渲染完成
一個頁面只會調用一次,代表頁面已經准備妥當,可以和視圖層進行交互。
onHide: 頁面隱藏
當navigateTo或底部tab切換時調用。
onUnload: 頁面卸載
當redirectTo或navigateBack的時候調用。
3、應用級生命周期,影響頁面級生命周期
-
小程序初始化完成后,頁面首次加載觸發onLoad,只會觸發一次。
-
當小程序進入到后台,先執行頁面onHide方法再執行應用onHide方法。
-
當小程序從后台進入到前台,先執行應用onShow方法再執行頁面onShow方法。
參考鏈接:
https://www.cnblogs.com/nosqlcoco/p/wxsmallcycle.html