前言:很多同學(xué)容易將小程序生命周期和頁面的生命周期混淆為一起瀑罗,這兩個其實應(yīng)該是不同卻又相互關(guān)聯(lián)的生命周期趟据,所以冗酿,用實際代碼操作并結(jié)合官方理論講講這個埠对,好好捋捋。
小程序生命周期
- 首先小程序的生命周期函數(shù)是在
app.js
里面調(diào)用的裁替,App(Object)
函數(shù)用來注冊一個小程序项玛。接受一個Object
參數(shù),指定其小程序的生命周期回調(diào)弱判;一般有onLaunch
監(jiān)聽小程序初始化襟沮、onShow
監(jiān)聽小程序顯示、onHide
監(jiān)聽小程序隱藏等生命周期回調(diào)函數(shù)。
- 看文字對概念有點(diǎn)模糊對不對开伏?理解概念的最好方法就是上手實際操作一遍膀跌。那么,我們來看看當(dāng)打開一個小程序的時候固灵,到底是
onLaunch
捅伤、onShow
、onHide
哪個先調(diào)用以及什么時候開始調(diào)用的巫玻。
onLaunch() {
console.log('onLaunch監(jiān)聽小程序初始化');
}
onShow() {
console.log('onShow監(jiān)聽小程序顯示');
}
onHide() {
console.log('onLaunch監(jiān)聽小程序隱藏');
}
- 從中我們可以知道小程序的生命周期函數(shù)的調(diào)用順序為:
onLaunch
>onShow
>onHide
頁面的生命周期
-
頁面生命周期函數(shù)就是當(dāng)你每進(jìn)入/切換到一個新的頁面的時候丛忆,就會調(diào)用的生命周期函數(shù)。
Page(Object)
函數(shù)用來注冊一個頁面仍秤。接受一個Object
類型參數(shù)熄诡,其指定頁面的初始數(shù)據(jù)、生命周期回調(diào)诗力、事件處理函數(shù)等粮彤。
我們用代碼來演示下各個頁面生命周期函數(shù)的先后順序。
onLoad(options) {
console.log('onLoad監(jiān)聽頁面加載');
}
onReady() {
console.log('onReady監(jiān)聽頁面初次渲染完成');
}
onShow() {
console.log('onShow監(jiān)聽頁面顯示');
}
onHide() {
console.log('onHide監(jiān)聽頁面隱藏');
}
onUnload() {
console.log('onUnload監(jiān)聽頁面卸載');
}
- 從中我們可以知道小程序的生命周期函數(shù)的調(diào)用順序為:
onLoad
>onShow
>onReady
姜骡。 - 至于
onHide
函數(shù)就是當(dāng)隱藏頁面的時候觸發(fā)。
小結(jié)
由此我們知道了
小程序程序生命周期函數(shù)
和頁面生命周期函數(shù)
的調(diào)用順序屿良,這兩者之間的事件順序一般如上圖所示小程序周期函數(shù)在前圈澈,頁面周期函數(shù)觸發(fā)在后。但是這并不是絕對的尘惧,比如康栈,有時候就會存在頁面
onLoad
函數(shù)比小程序app的onLaunch
生命周期函數(shù)先調(diào)用的情況,那么這時候就可以用回調(diào)的方式的來處理喷橙。