微信小程序 生命周期函數(shù)解析
微信小程序 生命周期函數(shù)解析。小程序中 判斷當(dāng)前首頁是從其他頁面返回,還是由入口打開。
由于小程序的數(shù)據(jù)在我們退出小程序時(shí)并沒有得到釋放,因此再次點(diǎn)擊開來數(shù)據(jù)依然沒有變成初始化
解決方法:在小程序 data 數(shù)據(jù)中聲明一個(gè)變量 isClose 默認(rèn)為 true 用于判斷 是否為從入口打開,當(dāng)點(diǎn)擊跳轉(zhuǎn)頁面或者關(guān)閉小程序的時(shí)候,會(huì)觸發(fā) OnHide 函數(shù)在此函數(shù)中將判斷 isClose is true 的時(shí)候即為關(guān)閉之后在打開,當(dāng)跳轉(zhuǎn)頁面時(shí)首先將 isClose 設(shè)置為 false, 這樣 觸發(fā) OnHide 函數(shù)的時(shí)候,isClose is flase 并不會(huì)執(zhí)行,進(jìn)入跳轉(zhuǎn)的頁面,然后在由頁面進(jìn)行返回這是會(huì)觸發(fā)跳轉(zhuǎn)的頁面的 OnUnload 函數(shù) 在此函數(shù)中 設(shè)置一個(gè)定時(shí)器 在 200ms 之后將 isClose 改為 true 這樣當(dāng)關(guān)閉小程序 再次進(jìn)入的時(shí)候 isColse 依然為true 判斷時(shí)是首次進(jìn)入頁面
微信小程序的生命周期函數(shù)
1.1 監(jiān)聽頁面加載
onLoad: function (options) {},
一個(gè)頁面只會(huì)調(diào)用一次,可以在 onLoad 中獲取打開當(dāng)前頁面所調(diào)用的 query 參數(shù)。
1.2 監(jiān)聽頁面初次渲染完成
onReady: function () {},
一個(gè)頁面只會(huì)調(diào)用一次,代表頁面已經(jīng)準(zhǔn)備妥當(dāng),可以和視圖層進(jìn)行交互。
1.3 監(jiān)聽頁面顯示
onShow: function () {},
每次打開頁面都會(huì)調(diào)用一次。
1.3 監(jiān)聽頁面隱藏
onHide: function () {},
當(dāng)navigateTo或底部tab切換時(shí)調(diào)用。
1.4 監(jiān)聽頁面卸載
onUnload: function () {},
當(dāng)redirectTo或navigateBack的時(shí)候調(diào)用。
微信小程序的 app.js 中 獨(dú)有的 函數(shù)
2.1 監(jiān)聽小程序初始化
onLaunch:function () {},
當(dāng)小程序初始化完成時(shí),會(huì)觸發(fā) onLaunch(全局只觸發(fā)一次)
2.2 錯(cuò)誤監(jiān)聽函數(shù)
onError:function () {},
當(dāng)小程序發(fā)生腳本錯(cuò)誤,或者 api 調(diào)用失敗時(shí),會(huì)觸發(fā) onError 并帶上錯(cuò)誤信息。