在ionic3里面我們可以了解下他的生命周期的鉤子他們?cè)诟鱾€(gè)階段被觸發(fā)
他們分別是:ionViewDidLoad(頁(yè)面加載完成觸發(fā))?ionViewWillEnter(頁(yè)面將要進(jìn)入的時(shí)候觸發(fā))ionViewDidEnter(已經(jīng)進(jìn)入頁(yè)面拉觸發(fā))ionViewWillLeave(頁(yè)面準(zhǔn)備離開(kāi)時(shí)觸發(fā))?ionViewDidLeave(頁(yè)面已經(jīng)離開(kāi)時(shí)觸發(fā))??ionViewWillUnload(頁(yè)面中的資源即將被銷(xiāo)毀時(shí)觸發(fā))
另外還有兩個(gè)守衛(wèi)鉤子它們是可以返回布爾值的ionViewCanEnter和ionViewCanLeave虎敦。
好我們一個(gè)個(gè)來(lái)談一個(gè)里面的鉤子函數(shù)
1) ionViewDidLoad(頁(yè)面加載完成觸發(fā))
頁(yè)面加載完成觸發(fā),這里的“加載完成”指的是頁(yè)面所需的資源已經(jīng)加載完成搁吓,但還沒(méi)進(jìn)入這個(gè)頁(yè)面的狀態(tài)(用戶(hù)看到的還是上一個(gè)頁(yè)面)原茅。
需要注意的是它是一個(gè)很傲嬌的鉤子,全程只會(huì)調(diào)用一次堕仔,即第一次進(jìn)入頁(yè)面時(shí)被調(diào)用擂橘,此后你無(wú)論怎樣進(jìn)進(jìn)出出它都冷冷清清凄凄慘慘戚戚不再理你了。除非你把它的后臺(tái)殺了摩骨,重新進(jìn)入這個(gè)軟件(在網(wǎng)頁(yè)調(diào)試的時(shí)候按刷新也是可以的)通贞。
因此這個(gè)鉤子適合你做一些一次性的處理,比如從服務(wù)器拉取用戶(hù)數(shù)據(jù)存到緩存中恼五。
2) ionViewWillEnter(頁(yè)面將要進(jìn)入的時(shí)候觸發(fā))
字面意義理解就是“我要進(jìn)來(lái)了”的那一刻昌罩,這個(gè)時(shí)候頁(yè)面剛剛開(kāi)始切換。你可以在這時(shí)對(duì)頁(yè)面的數(shù)據(jù)進(jìn)行預(yù)處理灾馒,這個(gè)鉤子是每次都會(huì)調(diào)用的茎用。
3) ionViewDidEnter(已經(jīng)進(jìn)入頁(yè)面拉觸發(fā))
當(dāng)這個(gè)鉤子被觸發(fā)的時(shí)候,用戶(hù)已經(jīng)進(jìn)入到新頁(yè)面了(頁(yè)面處于激活狀態(tài))睬罗,同樣也是每次都會(huì)調(diào)用轨功。
4) ionViewWillLeave(頁(yè)面準(zhǔn)備離開(kāi)時(shí)觸發(fā))
頁(yè)面準(zhǔn)備 (is about to) 離開(kāi)時(shí)觸發(fā),這時(shí)用戶(hù)剛剛觸發(fā)了返回按鈕或者相關(guān)的事件容达。
5)??ionViewDidLeave(頁(yè)面已經(jīng)離開(kāi)時(shí)觸發(fā))
頁(yè)面已經(jīng) (has finished) 離開(kāi)時(shí)觸發(fā)古涧,頁(yè)面處于非激活狀態(tài)了。
6) ionViewWillUnload(頁(yè)面中的資源即將被銷(xiāo)毀時(shí)觸發(fā))
頁(yè)面中的資源即將被銷(xiāo)毀時(shí)觸發(fā)花盐,
附上代碼
守衛(wèi)鉤子ionViewCanEnter和ionViewCanLeave羡滑。
7)?ionViewCanEnter?進(jìn)入頁(yè)面?如果ionViewCanEnter?返回了false?就會(huì)被阻攔
8)ionViewCanLeave?在頁(yè)面中想離開(kāi)菇爪,如果 ionViewCanLeave 返回了false,就會(huì)被阻攔柒昏。
附上代碼: