鸿蒙-自定义组件的生命周期

目录

自定义组件的生命周期

1.aboutToAppear

2.aboutToDisappear

3.onPageShow

4.onPageHide

5.onBackPress

日志输出

1.显示页面

2.页面点击返回按钮

3.页面跳转

4.页面返回


自定义组件的生命周期

先来一段列子

javascript 复制代码
import router from '@ohos.router'
@Entry
@Component
struct IndexPage {
  @State textColor: Color = Color.Black;

  aboutToAppear(){
    console.info('>>>IndexPage aboutToAppear')
  }

  aboutToDisappear(){
    console.info('>>>IndexPage aboutToDisappear')
  }

  onPageShow() {
    this.textColor = Color.Blue;
    console.info('>>>IndexPage onPageShow');
  }

  onPageHide() {
    this.textColor = Color.Transparent;
    console.info('>>>IndexPage onPageHide');
  }

  onBackPress() {
    this.textColor = Color.Red;
    console.info('>>>IndexPage onBackPress');
  }

  build() {
    Column() {
      Text('Hello World')
        .fontColor(this.textColor)
        .fontSize(30)
        .margin(30)
        .onClick(() =>{
          console.info('>>>IndexPage 点击');
          router.pushUrl({ url: 'pages/MinePage'})
        })
    }.width('100%')
  }
}

可以发现可以分为aboutToAppearaboutToDisappearonPageShowonPageHideonBackPress

1.aboutToAppear

先来看英文翻译:关于出现。顾名思义就是一开始就运行的函数。

aboutToAppear函数在创建自定义组件的新实例后,在执行其build()函数之前执行。允许在aboutToAppear函数中改变状态变量,更改将在后续执行build()函数中生效。

2.aboutToDisappear

先来看英文翻译:关于消失。顾名思义就是消失前执行的函数

aboutToDisappear函数在自定义组件析构销毁之前执行。不允许在aboutToDisappear函数中改变状态变量,特别是@Link变量的修改可能会导致应用程序行为不稳定。

3.onPageShow

先来看英文翻译:在页面显示上。顾名思义就是页面显示出来调用的函数

页面每次显示时触发一次,包括路由过程、应用进入前台等场景,仅@Entry装饰的自定义组件生效。

4.onPageHide

先来看英文翻译:在页面隐藏上。顾名思义就是页面隐藏后调用的函数(注点击返回按钮,并不会触发)

页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景,仅@Entry装饰的自定义组件生效。

5.onBackPress

先来看英文翻译:在返回按压。顾名思义就是点击返回按钮后调用的函数

当用户点击返回按钮时触发,仅@Entry装饰的自定义组件生效。

日志输出

1.显示页面

aboutToAppear ->onPageShow

2.页面点击返回按钮

onBackPress->aboutToDisappear

3.页面跳转

4.页面返回

相关推荐
星空下的月光影子16 小时前
鸿蒙应用开发中的性能优化与资源管理
鸿蒙系统
我讲个笑话你可别哭啊18 小时前
鸿蒙ArkTS快速入门
前端·ts·arkts·鸿蒙·方舟开发框架
mocoding19 小时前
使用已经完成鸿蒙化适配的Flutter本地持久化存储三方库shared_preferences让你的应用能够保存用户偏好设置、缓存数据等
flutter·华为·harmonyos·鸿蒙
小哥Mark1 天前
Flutter开发鸿蒙年味 + 实用实战应用|春节祝福:列表选卡 + 贴纸拖动 + 截图分享
flutter·harmonyos·鸿蒙
仓颉编程语言2 天前
鸿蒙仓颉编程语言挑战赛一等奖作品:MeetAI-基于Cangjie的智能会后整理助手
华为·鸿蒙·仓颉编程语言
血色橄榄枝2 天前
13-14 底部选项卡 flutter on openHarmony
flutter·开源·鸿蒙
We....2 天前
鸿蒙与Java跨平台Socket通信实战
java·服务器·tcp/ip·arkts·鸿蒙
仓颉编程语言2 天前
鸿蒙仓颉编程语言挑战赛二等奖作品 :以仓颉之码,筑智慧学园——基于仓颉与OpenHarmony的智慧校园协同管控系统实践
华为·鸿蒙·仓颉编程语言
全栈开发圈2 天前
干货分享|HarmonyOS核心技术理念
wpf·鸿蒙
加密狗复制模拟2 天前
破解加密狗时间限制介绍
安全·软件工程·个人开发