当前位置: 首页 > news >正文

鸿蒙4.0开发笔记之ArkTS语法基础之应用生命周期与页面中组件的生命周期(十六)

文章目录

    • 一、应用生命周期
    • 二、生命周期函数定义
    • 三、生命周期五函数练习

一、应用生命周期

1、定义
应用生命周期就是代表了一个HarmonyOS应用中所有页面从创建、开启到销毁等过程的全生命周期。查看路径如下:
Project/entry/src/main/ets/entryability/EntryAbility.ts文件中。
01
2、应用生命周期函数介绍
(1)状态函数:onCreate(want, launchParam) {...}

  • 如用户打开电池管理应用,在应用加载的过程中,在UI界面出现之前,可以在onCreate回调中读取;
  • 在Create状态,在UIAbility实例创建时触发,系统会调用onCreate回调。

(2)UI加载函数:onWindowStageCreate(...){...}

onWindowStageCreate(windowStage: window.WindowStage) {
windowStage.loadContent('pages/Index', (err, data) => {
});
}

在onWindowStageCreate(windowStage)中通过loadContent接口设置应用要加载的页面。

(3)onBackground回调函数:onBackground(...) {...}

  • 在UIAbility的UI页面完全不可见之后,即UIAbility切换⾄后台时候触发;
  • 当地图应用切换到后台状态,可以在onBackground回调中停止定位功能,以节省系统的资源消耗;
  • 可以在onBackground回调中释放UI页面不可见时无用的资源,或者在此回调中执行较为耗时的操作。

(4)onForeground回调函数:onForeground(...) {...}

  • 在UIAbility的UI页面可见之前,即UIAbility切换至前台时触发;
  • 可以在onForeground回调中申请系统需要的资源,或者重新申请在onBackground中释放的资源。

(5)销毁函数:

onWindowStageDestroy(...) {...}
onDestroy(...) {...}
  • onWindowStageDestroy在UIAbility实例销毁之前,则会先进入onWindowStageDestroy回调,我们可以在该回调中释放;
  • onDestroy在UIAbility销毁时触发,可以在onDestroy回调中进行系统资源的释放、数据的保存等操作。

二、生命周期函数定义

1、页面生命周期,即被@Entry装饰的组件生命周期,提供以下生命周期接口:

onPageShow:页面每次显示时触发。

onPageHide:页面每次隐藏时触发⼀次。

onBackPress:当用户点击返回按钮时触发。(是手机下方的返回按钮,不是页面的路由返回或者按钮返回)

2、组件生命周,即⼀般用@Component装饰的自定义组件的生命周期,提供以下生命周期接口:

aboutToAppear:组件即将出现时回调该接⼝,具体时机为在创建⾃定义组件的新实例后,在执行其build()函数之前执行。

aboutToDisappear:在自定义组件即将析构销毁时执行。

3、生命周期关系图
00

三、生命周期五函数练习

1、练习代码

@Entry
@Component
struct LifeCircle {@State message: string = 'Hello World'@State isAppear:boolean = truebuild() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Divider()Button('显示/隐藏子组件').backgroundColor(Color.Orange).onClick(()=>{this.isAppear = !this.isAppear})if(this.isAppear){LifeCircle_son()}}.width('100%')}.height('100%')}//页面显示onPageShow(){//打印出页面显示的提醒console.log('This Page is onPageShow')}//页面隐藏onPageHide(){//打印出页面隐藏的提醒console.log('This Page is onPageHide')}//页面返回:手机按钮上的返回onBackPress(){//打印出页面返回的提醒console.log('This Page is onBackPress')}//aboutToAppear和aboutToDisappear也可以放在入口组件中,后者表示程序被sha死时调用的函数//组件即将出现时回调该接⼝aboutToAppear(){console.log('This Page is 入口aboutToAppear')}//组件析构销毁时触发的函数aboutToDisappear(){console.log('This Page is 入口aboutToDisappear')}
}//子组件的内容
@Component
struct LifeCircle_son{build(){Column(){Text('显示子组件的内容').fontSize(40).fontStyle(FontStyle.Italic)}}//组件即将出现时回调该接⼝aboutToAppear(){console.log('This Page is 子组件aboutToAppear')}//组件析构销毁时触发的函数aboutToDisappear(){console.log('This Page is 子组件aboutToDisappear')}
}

2、练习效果
要查看Console Log日志的的效果,需要点击DevEco Studio编辑器下方的Log:
01

然后再在DevEco Studio编辑器点击右侧的Previewr预览器(执行编译),就可以查看到打印到日志的文本:
02
文章部分内容参考:HarmonyOS4.0教程

http://www.lryc.cn/news/254065.html

相关文章:

  • Android的前台服务
  • 99%小白不知道,BI报表能自动生成
  • rabbitmq技术
  • 鸿蒙4.0开发笔记之ArkTS语法基础之条件渲染和循环渲染的使用(十五)
  • 电子设备电路分析(2)-----高速激光脉冲探测器
  • WordPress(9)宝塔配置Redis
  • 【Qt之QSqlRelationalTableModel】描述及使用
  • 【Openstack Train安装】四、MariaDB/RabbitMQ 安装
  • 工业级路由器在智能交通系统(ITS)中的创新应用
  • React立即更新DOM
  • [JavaScript前端开发及实例教程]计算器井字棋游戏的实现
  • 数据结构 / 队列 / 循环队列 / 结构体定义和创建
  • Java零基础——Redis篇
  • 分支和循环
  • MyBatis-xml版本
  • 在eclipse中安装python插件:PyDev
  • 25、pytest的测试报告插件allure
  • 从零开始学习 JavaScript APl(七):实例解析关于京东案例头部案例和放大镜效果!
  • 使用Pytoch实现Opencv warpAffine方法
  • Hello World
  • 【Python】Python读Excel文件生成xml文件
  • c++--类型行为控制
  • 笔记64:Bahdanau 注意力
  • 面试官问:如何手动触发垃圾回收?幸好昨天复习到了
  • 操作系统的运行机制+中断和异常
  • Python实战:批量加密Excel文件指南
  • 二叉树链式结构的实现和二叉树的遍历以及判断完全二叉树
  • vue中的动画组件使用及如何在vue中使用animate.css
  • qt 5.15.2 网络文件下载功能
  • Wifi adb 操作步骤