????????生命周期是指一個程序或者軟件從創(chuàng)建、到開始、暫停、喚起、停止、卸載的過程,由于微信小程序分為全局和頁面兩部分,所有從這兩部分來講解微信小程序的生命周期
1、全局生命周期
? ? ? ? ? ?全局生命周期指的是使用App() 函數(shù)注冊一個小程序,接受一個object參數(shù),其指定小程序的生命周期回調(diào)等。
App() 必須在?
app.js
?中調(diào)用,必須調(diào)用且只能調(diào)用一次。不然會出現(xiàn)無法預(yù)期的后果
(1)onLaunch(Object object):生命周期回調(diào)——監(jiān)聽小程序初始化,全局只觸發(fā)一次;
?????????參數(shù):與?wx.getLaunchOptionsSync?一致;
(2)onShow(Object object):生命周期回調(diào)——小程序啟動,或從后臺進(jìn)入前臺顯示時觸發(fā);
?????????參數(shù):與?wx.onAppShow?一致;
(3)onHide():小程序從前臺進(jìn)入后臺時觸發(fā);
(4)onError(String error):生命周期回調(diào)——小程序發(fā)生腳本錯誤或 API 調(diào)用報錯時觸發(fā);
????????參數(shù):與?wx.onError?一致
以下回調(diào)函數(shù)從高版本開始支持,低版本需做兼容處理,了解基本功能即可。
(5)onPageNotFound(Object object):小程序要打開的頁面不存在時觸發(fā);
(6)onUnhandledRejection(Object object):小程序有未處理的 Promise 拒絕時觸發(fā);
(7)onThemeChange(Object object):系統(tǒng)切換主題時觸發(fā)。
?
// app.js App() 必須在 app.js 中調(diào)用,必須調(diào)用且只能調(diào)用一次。不然會出現(xiàn)無法預(yù)期的后果
App({
onLaunch (options) {
console.log(options);
},
onShow (options) {
console.log(options);
},
onHide () {
console.log();
},
onError (msg) {
console.log(msg)
},
})
2、頁面生命周期
? ? ? ? 使用Page(Object object)函數(shù)注冊小程序中的一個頁面。接受一個?Object
?類型參數(shù),其指定頁面的初始數(shù)據(jù)、生命周期回調(diào)、事件處理函數(shù)等。
(1)onLoad(Object query):頁面加載時觸發(fā)。一個頁面只會調(diào)用一次,可以在 onLoad 的參數(shù)中獲取打開當(dāng)前頁面路徑中的參數(shù);
????????參數(shù):
名稱 | 類型 | 說明 |
query | Object | 打開當(dāng)前頁面路徑中的參數(shù) |
(2)onShow():頁面顯示/切入前臺時觸發(fā);
(3)onReady():頁面初次渲染完成時觸發(fā)。一個頁面只會調(diào)用一次,代表頁面已經(jīng)準(zhǔn)備妥當(dāng),可以和視圖層進(jìn)行交互;
(4)onHide():頁面隱藏/切入后臺時觸發(fā)。 如底部?tab
?切換到其他頁面,小程序切入后臺等;
(5)onUnload():頁面卸載時觸發(fā)。如wx.redirectTo或wx.navigateBack到其他頁面時。
(6)onPullDownRefresh():監(jiān)聽用戶下拉刷新事件。
- 需要在
app.json
的window選項中或頁面配置中開啟enablePullDownRefresh
。- 可以通過wx.startPullDownRefresh觸發(fā)下拉刷新,調(diào)用后觸發(fā)下拉刷新動畫,效果與用戶手動下拉刷新一致。
- 當(dāng)處理完數(shù)據(jù)刷新后,wx.stopPullDownRefresh可以停止當(dāng)前頁面的下拉刷新。
(7)onReachBottom():監(jiān)聽用戶上拉觸底事件。
(8)onPageScroll(Object object):監(jiān)聽用戶滑動頁面事件。
(9)onAddToFavorites(Object object):監(jiān)聽用戶點擊右上角菜單“收藏”按鈕的行為,并自定義收藏內(nèi)容。
(10)onShareAppMessage(Object object):監(jiān)聽用戶點擊頁面內(nèi)轉(zhuǎn)發(fā)按鈕(button?組件?open-type="share"
)或右上角菜單“轉(zhuǎn)發(fā)”按鈕的行為,并自定義轉(zhuǎn)發(fā)內(nèi)容
(11)onShareTimeline():監(jiān)聽右上角菜單“分享到朋友圈”按鈕的行為,并自定義分享內(nèi)容。
?文章來源地址http://www.zghlxwxcb.cn/news/detail-601702.html
// 頁面生命周期
onLoad(){
console.log("onLoad-------生命周期回調(diào)—監(jiān)聽頁面加載【請求頁面初始化數(shù)據(jù)】");
},
onShow(){
console.log("onShow-------生命周期回調(diào)—監(jiān)聽頁面顯示");
},
onReady(){
console.log("onReady-------生命周期回調(diào)—監(jiān)聽頁面初次渲染完成");
},
onHide(){
console.log("onHide--------生命周期回調(diào)—監(jiān)聽頁面隱藏");
},
onUnload(){
console.log("onUnload-----------生命周期回調(diào)—監(jiān)聽頁面卸載");
},
onPullDownRefresh(){
console.log("onPullDownRefresh-----監(jiān)聽用戶下拉動作");
},
onReachBottom(){
console.log("onReachBottom-------頁面上拉觸底事件的處理函數(shù)");
},
onShareAppMessage(){
console.log("onShareAppMessage---------用戶點擊右上角轉(zhuǎn)發(fā)");
},
onShareTimeline(){
console.log("onShareTimeline-----------用戶點擊右上角轉(zhuǎn)發(fā)到朋友圈");
},
onAddToFavorites(){
console.log("onAddToFavorites----------用戶點擊右上角收藏");
},
onPageScroll(){
console.log("onPageScroll-----------頁面滾動觸發(fā)事件的處理函數(shù)");
},
onTabItemTap(){
console.log("onTabItemTap-----------當(dāng)前是 tab 頁時,點擊 tab 時觸發(fā)");
}
3、全局生命周期以及頁面生命周期的觸發(fā)順序
1、首次進(jìn)入小程序,全局生命周期加載
?
?2、頁面生命周期加載
?文章來源:http://www.zghlxwxcb.cn/news/detail-601702.html
?
到了這里,關(guān)于微信小程序的全局生命周期和頁面生命周期的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!