当父组件嵌套子组件创建时声明周期是:
父组件的aboutToAppear
子组件的aboutToAppear
父组件的onPageShow
当父组件嵌套子组件销毁时声明周期是:
父组件的onPageHide
父组件的aboutToDisAppear
子组件的aboutToDisAppear
LifecycleTestDemo.ets

import { router, Router } from '@kit.ArkUI';

@Component
struct ChildTest {
  aboutToAppear(): void {
    console.info('Child', 'aboutToAppear');
  }

  onPageShow(): void {
    console.info('Child', 'onPageShow');
  }

  onPageHide(): void {
    console.info('Child', 'onPageHide');
  }

  onBackPress(): boolean | void {
    console.info('Child', 'onBackPress');
  }

  aboutToDisappear(): void {
    console.info('Child', 'aboutToDisappear');
  }

  build() {
    Column() {
      Text('子组件')
        .fontSize(30)
    }
    .border({ width: 5, color: Color.Orange })
  }
}

@Entry
@Component
struct LifecycleTestDemo {
  @State message: string = '父组件';

  aboutToAppear(): void {
    console.info('ParentComponent', 'aboutToAppear');
  }

  onPageShow(): void {
    console.info('ParentComponent', 'onPageShow');
  }

  onPageHide(): void {
    console.info('ParentComponent', 'onPageHide');
  }

  onBackPress(): boolean | void {
    console.info('ParentComponent', 'onBackPress');
  }

  aboutToDisappear(): void {
    console.info('ParentComponent', 'aboutToDisappear');
  }

  build() {
    Column() {
      Text(this.message)
        .id('LifecycleTestDemoHelloWorld')
        .fontSize($r('app.float.page_text_font_size'))
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
        .onClick(() => {
          router.replaceUrl({
            url: 'pages/Test/ProvideAndConsumeDemo'
          });
        })
      ChildTest();
    }
    .height('50%')
    .width('100%')
    .border({ width: 5, color: Color.Red })
  }
}

在这里插入图片描述

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐