【ArkTS】生命周期

页面生命周期

通常@Entry修饰的组件称为页面,其拥有页面生命周期

  • onPageShow:页面每次显示时触发。
  • onPageHide:页面每次隐藏时触发(通常是路由跳转到其他页面了)。
  • onBackPress:当用户点击返回按钮时时触发(是手机底部操作栏的返回按钮,不是顶部的路由返回按钮)。

组件生命周期

@Component修饰的组件都有生命周期

  • aboutToAppear:组件即将出现时回调该接口,具体时机为在创建自定义组件的新实例后,在执行其build()函数之前执行。通常在该生命周期发送请求获取数据。
  • aboutToDisappear:在自定义组件即将析构销毁时执行。

案例

import router from '@ohos.router'
@Entry
@Component
struct LifeCycle {
  @State visible: boolean = true
  build() {
    Column({space:30}){
      Button('跳转到其他页面')
        .onClick(() => {
          router.pushUrl({url: "pages/Demo"})
        })
      Button('显示 / 隐藏')
        .onClick(() => this.visible = !this.visible)
      if (this.visible) Son()
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }
  // 页面生命周期
  onPageShow(){
    console.log('onPageShow --- 页面1 显示了')
  }
  onPageHide(){
    console.log('onPageHide --- 页面1 隐藏了')
  }
  onBackPress(){
    console.log('onBackPress --- 页面1 返回了')
  }
  // 组件的生命周期
  aboutToAppear(){
    console.log('aboutToAppear --- 父组件出现')
  }
  aboutToDisappear(){
    console.log('aboutToDisappear --- 父组件析构销毁')
  }
}

@Component
struct Son {
  build() {
    Text('我是子组件').fontSize(60)
  }
  aboutToAppear(){
    console.log('aboutToAppear --- 子组件出现')
  }
  aboutToDisappear(){
    console.log('aboutToDisappear --- 子组件析构销毁')
  }
}

页面初始渲染时,打印效果如下,先进入父组件的aboutToAppear,再进入子组件的aboutToAppear,再进入页面1 (父组件)的onPageShow
在这里插入图片描述

点击跳转路由的按钮后,先进入页面1的onPageHide,再进入页面2的onPageShow
在这里插入图片描述

点击 显示 / 隐藏按钮时,子组件进入aboutToDisappear
在这里插入图片描述

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

田本初

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值