在開始之前披摄,我們先明確自定義組件和頁面的關(guān)系:
- 自定義組件:@Component裝飾的UI單元亲雪,可以組合多個系統(tǒng)組件實(shí)現(xiàn)UI的復(fù)用,可以調(diào)用組件的生命周期疚膊。
- 頁面:即應(yīng)用的UI頁面义辕。可以由一個或者多個自定義組件組成寓盗,@Entry裝飾的自定義組件為頁面的入口組件灌砖,即頁面的根節(jié)點(diǎn),一個頁面有且僅能有一個@Entry傀蚌。只有被@Entry裝飾的組件才可以調(diào)用頁面的生命周期基显。
頁面生命周期,即被@Entry裝飾的組件生命周期善炫,提供以下生命周期接口:
- onPageShow:頁面每次顯示時觸發(fā)一次撩幽,包括路由過程、應(yīng)用進(jìn)入前臺等場景箩艺。
- onPageHide:頁面每次隱藏時觸發(fā)一次窜醉,包括路由過程、應(yīng)用進(jìn)入后臺等場景舅桩。
- onBackPress:當(dāng)用戶點(diǎn)擊返回按鈕時觸發(fā)酱虎。
組件生命周期,即一般用@Component裝飾的自定義組件的生命周期擂涛,提供以下生命周期接口:
- aboutToAppear:組件即將出現(xiàn)時回調(diào)該接口读串,具體時機(jī)為在創(chuàng)建自定義組件的新實(shí)例后,在執(zhí)行其build()函數(shù)之前執(zhí)行撒妈。
- onDidBuild:組件build()函數(shù)執(zhí)行完成之后回調(diào)該接口恢暖,不建議在onDidBuild函數(shù)中更改狀態(tài)變量、使用animateTo等功能狰右,這可能會導(dǎo)致不穩(wěn)定的UI表現(xiàn)杰捂。
- aboutToDisappear:aboutToDisappear函數(shù)在自定義組件析構(gòu)銷毀之前執(zhí)行。不允許在aboutToDisappear函數(shù)中改變狀態(tài)變量棋蚌,特別是@Link變量的修改可能會導(dǎo)致應(yīng)用程序行為不穩(wěn)定嫁佳。
生命周期流程如下圖所示,下圖展示的是被@Entry裝飾的組件(頁面)生命周期谷暮。
生命周期.png