小程序的生命周期 base 官方文檔

參讀過(guò)小程序文檔的同學(xué)應(yīng)該會(huì)發(fā)現(xiàn)小程序的設(shè)計(jì)和VUE有諸多相似之處顶岸,比如小程序的數(shù)據(jù)綁定方式、渲染方式和生命周期有諸多相似之處。然而相似歸相似席赂,由于小程序的應(yīng)用場(chǎng)景繁多且情況不單一,導(dǎo)致小程序的生命周期比VUE的生命周期情況更為復(fù)雜时迫。所以我們這篇文章就談下我們小程序的生命周期颅停。
我們知道小程序的頁(yè)面分為兩種 : tab頁(yè)面 和 非tab頁(yè)面 。這里這兩種頁(yè)面的情況較為獨(dú)立掠拳,沒(méi)有太大的穿插性癞揉,所以我們可以分開(kāi)記憶,這點(diǎn)對(duì)我們來(lái)說(shuō)是非常棒的溺欧。否則錯(cuò)綜復(fù)雜喊熟,云里霧里。好了胧奔,我們下面就開(kāi)始進(jìn)入正題逊移,本文的理解都基于官方文檔的介紹,如有錯(cuò)誤龙填,請(qǐng)大佬糾正在下胳泉,感激不盡拐叉。
情況一,非tab頁(yè)面
在非tab頁(yè)面中,有幾種跳轉(zhuǎn)情況扇商,這里請(qǐng)看下面官方的截圖


image.png

我們從官方文檔介紹這里開(kāi)始分析一波凤瘦。
當(dāng)首次進(jìn)入小程序的時(shí)候,會(huì)走'兩套流程'.第一個(gè)流程就是我們的入口 app.js,第二個(gè)就是我們的首頁(yè)的生命周期(onload,onshow....)案铺。
我們頁(yè)面路由的變動(dòng)方式有五種
方式一
wx.navigateTo : 當(dāng)頁(yè)面使用小程序api的wx.navigateTo跳轉(zhuǎn)到其他頁(yè)面的時(shí)候(A to B)蔬芥,A會(huì)執(zhí)行鉤子函數(shù)onHide,然后B頁(yè)面開(kāi)始執(zhí)行加載(onLoad)和顯示(onShow)。注意:A只是hide了控汉,并沒(méi)有被卸載(onUnload)笔诵,所以你會(huì)發(fā)現(xiàn),跳轉(zhuǎn)到B頁(yè)面后姑子,左上角還有一個(gè)物理返回鍵在那乎婿,就像下面


image.png

這里又有一點(diǎn)劇透請(qǐng)注意了: 物理返回鍵其實(shí)就是調(diào)用了我們的路由Api中的wx.navigateBack。執(zhí)行這個(gè)api街佑,當(dāng)前打開(kāi)中的頁(yè)面會(huì)被卸載谢翎,原來(lái)的頁(yè)面會(huì)被show,但是不會(huì)再去執(zhí)行onLoad了!!!
wx.navigateBack其實(shí)就是從頁(yè)面棧中去找你要的目標(biāo)頁(yè)面,當(dāng)找到后沐旨,原來(lái)已經(jīng)打開(kāi)的頁(yè)面都會(huì)被退出(頁(yè)面出棧)森逮,直到返回到目標(biāo)頁(yè)面為止,單后只會(huì)執(zhí)行目標(biāo)頁(yè)面的onShow磁携。其實(shí)說(shuō)到這里褒侧,有一個(gè)結(jié)論:只要在頁(yè)面是棧中的,并且你執(zhí)行的是'返回頁(yè)面(wx.navigateBack)'的方式回到目標(biāo)頁(yè)面谊迄,就只會(huì)讓目標(biāo)頁(yè)面執(zhí)行onShow璃搜。因?yàn)樗欠祷卦瓉?lái)的歷史記錄去找,而不是新壓一個(gè)頁(yè)面入棧鳞上。
方式二
wx.redirectTo : 這個(gè)方式叫頁(yè)面重定向,他其實(shí)就類似于我們url的replace方法吊档,將原來(lái)的頁(yè)面出棧(onUnload)篙议,替換成我們的目標(biāo)頁(yè)面。不要誤會(huì)了怠硼,這個(gè)替換其實(shí)也就是將新頁(yè)面壓入頁(yè)面棧中鬼贱。因此新頁(yè)面會(huì)去執(zhí)行onLoad以及onShow。這個(gè)方法比較好理解香璃,我們不多做贅述这难。
方式三

wx.navigateBack : 在頁(yè)面棧中去找目標(biāo)頁(yè)面,在找到后葡秒,就讓頁(yè)面棧里的頁(yè)面不斷出棧姻乓,直到返回到目標(biāo)頁(yè)面為止嵌溢。目標(biāo)頁(yè)面執(zhí)行onShow。
情況四
wx.reLaunch: 頁(yè)面全部出棧蹋岩,只留下新頁(yè)面(簡(jiǎn)單粗暴)赖草。
----------------------------------------------以上都是非tab頁(yè)面的路由更替情況
這里開(kāi)始,開(kāi)始討論和tab頁(yè)面路由更替有關(guān)的情況剪个,上面的情況都是非tab頁(yè)面的秧骑,有tab頁(yè)面參與的我們需要單獨(dú)去記憶,因?yàn)檫@樣好記扣囊。
請(qǐng)看下面的圖(沒(méi)錯(cuò)乎折,我就是官網(wǎng)的搬運(yùn)工)


image.png

上面圖中的紅色文字是根據(jù)官網(wǎng)的介紹進(jìn)行翻譯的,這里我做幾點(diǎn)解釋
相扣順序 : A頁(yè)面打開(kāi)了B頁(yè)面 侵歇,我管這種頁(yè)面關(guān)系叫相扣順序的兩個(gè)頁(yè)面
A框和B框表示 tab頁(yè)面A和tab頁(yè)面B骂澄,沒(méi)有框的C和D就表示非tab頁(yè)面C和非tab頁(yè)面D

----------------------------------以上為全文內(nèi)容,如有錯(cuò)誤請(qǐng)指正盒至,如果覺(jué)得還行請(qǐng)來(lái)個(gè)贊酗洒,謝謝哈

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市枷遂,隨后出現(xiàn)的幾起案子樱衷,更是在濱河造成了極大的恐慌,老刑警劉巖酒唉,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矩桂,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡痪伦,警方通過(guò)查閱死者的電腦和手機(jī)侄榴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)网沾,“玉大人癞蚕,你說(shuō)我怎么就攤上這事』愿纾” “怎么了桦山?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)醋旦。 經(jīng)常有香客問(wèn)我恒水,道長(zhǎng),這世上最難降的妖魔是什么饲齐? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任钉凌,我火速辦了婚禮,結(jié)果婚禮上捂人,老公的妹妹穿的比我還像新娘御雕。我一直安慰自己矢沿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布饮笛。 她就那樣靜靜地躺著咨察,像睡著了一般。 火紅的嫁衣襯著肌膚如雪福青。 梳的紋絲不亂的頭發(fā)上摄狱,一...
    開(kāi)封第一講書(shū)人閱讀 50,050評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音无午,去河邊找鬼媒役。 笑死,一個(gè)胖子當(dāng)著我的面吹牛宪迟,可吹牛的內(nèi)容都是我干的酣衷。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼次泽,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼穿仪!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起意荤,我...
    開(kāi)封第一講書(shū)人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤啊片,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后玖像,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體紫谷,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年捐寥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了笤昨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡握恳,死狀恐怖瞒窒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情乡洼,我是刑警寧澤根竿,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站就珠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏醒颖。R本人自食惡果不足惜妻怎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望泞歉。 院中可真熱鬧逼侦,春花似錦匿辩、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至晰赞,卻和暖如春稼病,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背掖鱼。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工然走, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人戏挡。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓芍瑞,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親褐墅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拆檬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容