鴻蒙Navigation頁面生命週期

龙儿筝發表於2024-11-10

Navigation作為路由容器,其生命週期承載在NavDestination元件上,以元件事件的形式開放。其生命週期大致可分為三類,自定義元件生命週期、通用元件生命週期和自有生命週期。其中,aboutToAppear和aboutToDisappear是自定義元件的生命週期(NavDestination外層包含的自定義元件),OnAppear和OnDisappear是元件的通用生命週期。剩下的六個生命週期為NavDestination獨有。生命週期時序如下圖所示
img1

  • aboutToAppear:在建立自定義元件後,執行其build()函式之前執行(NavDestination建立之前),允許在該方法中改變狀態變數,更改將在後續執行build()函式中生效。
  • onWillAppear:NavDestination建立後,掛載到元件樹之前執行,在該方法中更改狀態變數會在當前幀顯示生效。
  • onAppear:通用生命週期事件,NavDestination元件掛載到元件樹時執行。
  • onWillShow:NavDestination元件佈局顯示之前執行,此時頁面不可見(應用切換到前臺不會觸發)。
  • onShown:NavDestination元件佈局顯示之後執行,此時頁面已完成佈局。
  • onWillHide:NavDestination元件觸發隱藏之前執行(應用切換到後臺不會觸發)。
  • onHidden:NavDestination元件觸發隱藏後執行(非棧頂頁面push進棧,棧頂頁面pop出棧或應用切換到後臺)。
  • onWillDisappear:NavDestination元件即將銷燬之前執行,如果有轉場動畫,會在動畫前觸發(棧頂頁面pop出棧)。
  • onDisappear:通用生命週期事件,NavDestination元件從元件樹上解除安裝銷燬時執行。
  • aboutToDisappear:自定義元件析構銷燬之前執行,不允許在該方法中改變狀態變數。

相關文章