在app.js里面你會發現一個onLaunch()方法,這個方法是當小程序加載完畢后就執行的方法,此外,還有一個onShow()方法,先看下面的代碼
app.js
//app.js App({ onLaunch: function (options) { console.log(options); console.log("你好"); }, onShow: function (options) { console.log("This is the on show function"); console.log("onShow"); console.log(options); }, globalData: { userInfo: null } })
發現在控制台中,onLaunch和onShow方法都執行了,且二者的console.log(options)打印的是同樣的東西,為啥要這樣子呢?
首先onLaunch方法是在小程序加載時執行的,而onShow方法是在每次從小程序的前后台切換時都執行的,比如比點開發者工具上面的“切前台”,再點"切后台”,此時會發現控制台輸出的是onShow方法里面內容,而onLaunch不再執行。
好像,手機里當你點小程序右上角的關閉按鈕時,在5分鍾之內再次進入該小程序的話,默認執行onShow方法,不執行onLaunch方法,好像是5分鍾之內算是切換后台而已?(不是很確定)
onShow(options)
1.調用時機:小程序啟動,或從后台進入前台顯示時觸發。如果想要在小程序每次進入到前台時都執行一些事情,那么可以將代碼放在這個里面。
比如一些實時動態更新的數據,用戶每次進來都要從服務器更新,那么我們就可以在這個里面做。
onHide()
調用時機:小程序被切換到后台(包括微信自身被切換到后台或者小程序暫時被切換到后台)。可以在這個方法中共做一些數據的保存。
小程序從前台進入后台時觸發。
onError(String error)
小程序發生腳本錯誤或 API 調用報錯時觸發
onError:function(msg){
console.log(msg);
},
小程序出錯的話,會在編輯器中自動打印出錯誤信息,該錯誤信息也可以通過onError(String error)的error參數接收並打印出來或者另作他用
來源:知了黃勇