鸿蒙 UIAbility和Compent 生命周期

 

一、UIAbility的生命周期

        在UIAbility的使用过程中,会有多种生命周期状态,掌握UIAbility的生命周期,对于应用的开发非常重要。

        1、UIAbility的生命周期

        UIAbility的生命周期主要分为以下4个:

        Create---Foreground---Background---Destory

其中WindowStageCreate和WindowStageDestory是UIAbility中管理UI界面功能的两个生命周期回调。

        

        2、UIAbility的生命周期使用

        

二、页面和自定义组件组件生命周期

        转载自:harmony 鸿蒙页面和自定义组件生命周期

        1、被@Entry装饰的生命周期

在开始之前,我们先明确自定义组件和页面的关系:

生命周期流程如下图所示,下图展示的是被@Entry装饰的组件(首页)生命周期。

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

  • 自定义组件:\@Component装饰的UI单元,可以组合多个系统组件实现UI的复用。

  • 页面:即应用的UI页面。可以由一个或者多个自定义组件组成,\@Entry装饰的自定义组件为页面的入口组件,即页面的根节点,一个页面有且仅能有一个\@Entry。只有被\@Entry装饰的组件才可以调用页面的生命周期。

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

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

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

  • onBackPress:当用户点击返回按钮时触发。

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

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

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

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

        2、组件生命周期使用
// Index.ets
import router from '@ohos.router';@Entry
@Component
struct MyComponent {@State showChild: boolean = true;// 只有被@Entry装饰的组件才可以调用页面的生命周期onPageShow() {console.info('Index onPageShow');}// 只有被@Entry装饰的组件才可以调用页面的生命周期onPageHide() {console.info('Index onPageHide');}// 只有被@Entry装饰的组件才可以调用页面的生命周期onBackPress() {console.info('Index onBackPress');}// 组件生命周期aboutToAppear() {console.info('MyComponent aboutToAppear');}// 组件生命周期aboutToDisappear() {console.info('MyComponent aboutToDisappear');}build() {Column() {// this.showChild为true,创建Child子组件,执行Child aboutToAppearif (this.showChild) {Child()}// this.showChild为false,删除Child子组件,执行Child aboutToDisappearButton('delete Child').onClick(() => {this.showChild = false;})// push到Page2页面,执行onPageHideButton('push to next page').onClick(() => {router.pushUrl({ url: 'pages/Page2' });})}}
}@Component
struct Child {@State title: string = 'Hello World';// 组件生命周期aboutToDisappear() {console.info('[lifeCycle] Child aboutToDisappear')}// 组件生命周期aboutToAppear() {console.info('[lifeCycle] Child aboutToAppear')}build() {Text(this.title).fontSize(50).onClick(() => {this.title = 'Hello ArkUI';})}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多模态大模型:解析未来智能汽车的新引擎

多模态大模型:解析未来智能汽车的新引擎 1. 多模态大模型简介2. 多模态大模型在智能汽车中的应用2.1 感知与认知2.2 智能驾驶辅助2.3 智能交互 随着人工智能技术的不断进步,智能汽车已经从概念变成了现实,成为了当今科技领域的焦点之一。而在…

大模型预测,下一个token何必是文字?

太快了太快了… 大模型的生成技能,已经到了普通人看不懂的境界! 它可以根据用户过去5年的体检报告,生成未来第1年、第2年、第3年的体检报告。 你看,这个生成的过程,是不是像极了ChatGPT,根据历史单词预测…

顺序栈、链式栈、顺序队列、链式队列的ADT及其实现

顺序栈ADT及其实现 链式栈ADT及其实现 顺序队列的ADT及其实现 在数组中队首队尾的分配方案 第三中方案,即达到入队出队操作的时间代价是O(1) 同时可充分利用空间,不会出现空间似乎用完了的假象 时间性能和空间性能发挥到最大 链…

快速上手Spring Cloud 九:服务间通信与消息队列

快速上手Spring Cloud 一:Spring Cloud 简介 快速上手Spring Cloud 二:核心组件解析 快速上手Spring Cloud 三:API网关深入探索与实战应用 快速上手Spring Cloud 四:微服务治理与安全 快速上手Spring Cloud 五:Spring …

短视频矩阵系统---开发源头交付

短视频矩阵系统---开发源头交付 短视频矩阵系统的核心开发步骤包括以下几个方面: 1. 系统设计:根据需求分析,设计出相应的系统架构,包括数据库设计、系统功能模块设计等。 2. 开发基础功能:基础功能包括短视频的上传、…

数据库工具——DBeaver的安装及使用

目录 一、DBeaver介绍 1.定义 2.支持的数据库 3.支持的操作系统 4.特点 二、DBeaver安装及使用 1.服务启动 2.查看连接类型 3.演示连接Mysql数据库 4.连接配置 5.成功连接 6.远程控制 6.1新建数据库 6.2新建数据表 6.3添加字段列 6.4使用SQL编辑器进行编辑 一…

双向长短期BiLSTM的回归预测-附MATLAB代码

BiLSTM是一种带有正反向连接的长短期记忆网络(LSTM)。 BiLSTM通过两个独立的LSTM层,一个按时间顺序处理输入,另一个按时间倒序处理输入,分别从正向和反向两个方向捕捉输入序列的特征。具体地,正向LSTM按时…

蓝桥杯物联网竞赛_STM32L071_13_定时器

CubeMx配置LPTIM: counts internal clock events 计数内部时钟事件 prescaler 预分频器 updata end of period 更新期末 kil5配置: 中断回调函数完善一下: void HAL_LPTIM_AutoReloadMatchCallback(LPTIM_HandleTypeDef *hlptim){if(cnt ! 10) cnt…

Python:执行py命令,提示: Can‘t find a default Python.

1.Python运行环境罢工 今天,要运行一个前年用python编写的爬虫程序,先检测python运行环境是否正常: D:\Python38-32\works>c:\windows\py.exe Cant find a default Python. 再试: D:\Python38-32\works>py --list Installe…

基于单片机的便携式瓦斯检测仪系统设计

**单片机设计介绍,基于单片机的便携式瓦斯检测仪系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的便携式瓦斯检测仪系统设计是一个针对煤矿等工业环境中瓦斯气体浓度检测的重要项目。以下是该设计…

RN在android/ios手机剪切图片的操作

之前写过一个React Native调用摄像头画面及拍照和保存图片到相册全流程但是这个仅限于调用摄像头拍照并保存图片,今天再写一个版本的操作,这个博客目前实现的有三点操作: 调用摄像头拍照对照片进行剪切从相册选取图片 功能上面来说有两点: 点击按钮可以对摄像头进行拍照,拍完照…

C++进阶,手把手带你学继承

🪐🪐🪐欢迎来到程序员餐厅💫💫💫 主厨:邪王真眼 主厨的主页:Chef‘s blog 所属专栏:c大冒险 总有光环在陨落,总有新星在闪烁 【本节目标】 1.继…

引领2024年的人工智能前景:趋势、预测和可能性(万字长文)

欢迎来到2024年人工智能和技术的可能性之旅。在这里,每一个预测都是一个潜在的窗口,未来充满了创新、变化,更重要的是,机会类似于20世纪50年代的工业革命。50年代见证了数字计算的兴起,重塑了行业和社会规范。今天&…

【面经】2023年软件测试面试题大全(持续更新)附答案

前阵子一位读者告诉我,某位大厂HR给他发了我之前做的面试题答案合集。 这个消息让我开心了一整天😂,因为这说明我之前做的面试题系列真的能帮助到部分测试同学,也算是侧面得到了一种认可吧。 坚持可是我们程序员家族的优良传统&a…

实时语音识别(Python+HTML实战)

项目下载地址:FunASR 1 安装库文件 项目提示所需要下载的库文件:pip install -U funasr 和 pip install modelscope 运行过程中,我发现还需要下载以下库文件才能正常运行: 下载:pip install websockets,pi…

【爬虫开发】爬虫从0到1全知识md笔记第2篇:requests模块,知识点:【附代码文档】

爬虫开发从0到1全知识教程完整教程(附代码资料)主要内容讲述:爬虫课程概要,爬虫基础爬虫概述,,http协议复习。requests模块,requests模块1. requests模块介绍,2. response响应对象,3. requests模块发送请求,4. request…

【C++的奇迹之旅】C++关键字命名空间使用的三种方式C++输入输出命名空间std的使用惯例

文章目录 📝前言🌠 C关键字(C98)🌉 命名空间🌠命名空间定义🌉命名空间使用 🌠命名空间的使用有三种方式:🌉加命名空间名称及作用域限定符🌠使用using将命名空间中某个成员…

跨境电商IP防关联是什么?有什么作用?

做跨境电商的朋友应该都知道IP防关联这个词,那么为何IP需要防关联呢?今天为大家来解答这个问题。 跨境电商IP防关联是指在跨境电商运营中,通过采取一系列技术手段,确保每个跨境电商账号使用独立的IP地址,以避免账号之间因为IP地址…

双出口nat配置示例

一、需求: 局域网内两个网段,vlan10 和 vlan 20,分别实现 vlan10 可访问专网,vlan20 可访问互联网,且两个网段彼此不互通。拓朴如下: 二、配置思路: 1、S1起 vlan10、20,做 acl 配置…

[深度学习]yolov8+streamlit搭建精美界面GUI网页设计源码实现三

【设计思路介绍】 为了使用YOLOv8和Streamlit搭建一个精美的界面GUI网页,你需要遵循几个关键步骤。以下是一个简化的流程,帮助你设计并实现这一目标: 1. 环境准备 安装YOLOv8 YOLOv8是一个先进的实时目标检测模型。你需要先下载并安装YOL…