在小程序中 ,通過App()來注冊一個小程序 ,通過Page()來注冊一個頁面 先來看一張小程序項目結(jié)構(gòu)
從上圖可以看出,根目錄下面有包含了app.js,app.wxss,app.json三個文件 這是小程序的全局文件,app.js是小程序邏輯 ,app.json是小程序公共設置,app.wxss是小程序公共樣式表 在app.js文件中 , 定義了一些生命周期方法 , onLaunch,onShow,onHide,onError,以及任意開發(fā)者添加的函數(shù)或者數(shù)據(jù)(通過this可以訪問) 以下是各個生命周期方法作用和描述 onLaunch 生命周期函數(shù)--監(jiān)聽小程序初始化 當小程序初始化完成時,會觸發(fā) onLaunch(全局只觸發(fā)一次) onShow 生命周期函數(shù)--監(jiān)聽小程序顯示 當小程序啟動,或從后臺進入前臺顯示,會觸發(fā) onShow onHide 生命周期函數(shù)--監(jiān)聽小程序隱藏 當小程序從前臺進入后臺,會觸發(fā) onHide onError 錯誤監(jiān)聽函數(shù) 當小程序發(fā)生腳本錯誤,或者 api 調(diào)用失敗時,會觸發(fā) onError 并帶上錯誤信息 其他 Any 開發(fā)者可以添加任意的函數(shù)或數(shù)據(jù)到 Object 參數(shù)中,用 this 可以訪問 我們在app.js文件中定義以下方法 ,并打印出來 App({ onLaunch: function (options) { console.log("app.js ---onLaunch---" + JSON.stringify(options)); }, onShow:function(){ console.log("app.js ---onShow---"); }, onHide:function(){ console.log("app.js ---onHide---"); }, onError: function (msg){ console.log("app.js ---onError---" + msg); }, globalData: { userInfo: null } })
這是我們打開一個小程序打印出來的一些方法 可以看出, 打開程序依次執(zhí)行了app.js下面onLaunch和onShow方法,以及page頁面中的onLoad,onShow和onReady方法 其中 , onLaunch, onShow 方法會返回一個參數(shù)對象, 里面包含了三個參數(shù) , path,query和scene ,path是打開小程序的路徑 query是打開小程序頁面url的參數(shù),scene是打開小程序的場景值
更多場景值可以查看 小程序切換到后臺會執(zhí)行以下2個方法
返回小程序前臺 在page頁面中定義的生命周期方法 onLoad 生命周期函數(shù)--監(jiān)聽頁面加載 onReady 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成 onShow 生命周期函數(shù)--監(jiān)聽頁面顯示 onHide 生命周期函數(shù)--監(jiān)聽頁面隱藏 onUnload 生命周期函數(shù)--監(jiān)聽頁面卸載 Page({ onLoad: function (options) { console.log("page ---onLoad---"); }, onReady: function () { console.log("page ---onReady---"); }, onShow: function () { console.log("page ---onShow---"); }, onHide: function () { console.log("page ---onHide---"); }, onUnload: function () { console.log("page ---onUnload---"); } }) 其中,打開小程序后會依次執(zhí)行onLoad,onReady和onShow方法 前后臺切換會分別執(zhí)行onHide和onShow方法, 當小程序頁面銷毀時會執(zhí)行 onUnload方法 例如,我們在details.js中定義onUnload方法 onUnload: function () { console.log("details.js --onUnload") }, 當我們從首頁打開一個新頁面details.wxml,然后再關(guān)閉著這個頁面
從上圖可以看到頁面執(zhí)行了onUnload方法 另外, 小程序為我們提供了全局數(shù)據(jù)管理 ,在page頁面中通過getApp()方法獲取app.js實例 例如: 我們在app.js通過定義一個globalData數(shù)據(jù)對象 App({ globalData: { userInfo: null } }) // other.js var appInstance = getApp() console.log(appInstance.globalData)
注意: 參考文章 微信小程序開發(fā)詳解(七)---微信小程序APP生命周期 |
工作日 8:30-12:00 14:30-18:00
周六及部分節(jié)假日提供值班服務