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

news2025/1/9 17:17:14

目录

自定义组件的生命周期

1.aboutToAppear 

2.aboutToDisappear

3.onPageShow

4.onPageHide

5.onBackPress

日志输出

1.显示页面

2.页面点击返回按钮

3.页面跳转

4.页面返回


自定义组件的生命周期

先来一段列子

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.页面返回

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

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

相关文章

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Badge)

可以附加在单个组件上用于信息标记的容器组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 说明: 子组件类型:系统组件和自定义组件&#xf…

移动云行动:5.5G技术引领数字化转型

刚刚结束的全国两会上,有人大代表建议应尽快发挥5G-A(5.5G)优势,加快试点城市布局。此前,中国移动已宣布将在300多个城市启动5.5G商用部署。在通信技术的历史长河中,4G改变了我们的生活方式,而5…

【UE5】持枪状态站立移动的动画混合空间

项目资源文末百度网盘自取 创建角色在持枪状态站立移动的动画混合空间 在BlendSpace文件夹中单击右键选择动画(Animation)中的混合空间(Blend Space) 选择SK_Female_Skeleton 命名为BS_RifleStand 打开 水平轴表示角色的方向,命名为Direction,方…

springboot+poi-tl根据模板导出word(含动态表格和图片),并将导出的文档压缩zip导出

springbootpoi-tl根据模板导出word&#xff08;含动态表格和图片&#xff09; 官网&#xff1a;http://deepoove.com/poi-tl/ 参考网站&#xff1a;https://blog.csdn.net/M625387195/article/details/124855854 pom导入的maven依赖 <dependency><groupId>com.dee…

Autosar教程-Mcal教程-Lin配置教程

3.7LIN配置、生成 3.7.1 配置通用设置 3.7.2 配置Dem参数 3.7.3 配置Lin通道 3.7.4配置生成命令 参照Dio生成命令方法&#xff0c;创建Lin生成命令&#xff0c;创建完成后按下面提供的信息配置生成命令。 实际上MCAL代码并不能单独生成&#xff0c;它需要和BSW的配置文件一…

内存操作函数(C语言)

目录 memcpy使用和模拟实现 memcpy函数的模拟实现 memmove的使用和模拟实现 memmove的模拟实现 memset函数的使用 memcmp函数的使用 memcpy使用和模拟实现 mem--memory--记忆--内存 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置这…

springcloud:4.1 GateWay

概述 Gateway 简介 Spring Cloud Gateway基于Spring 5.0、SpringBoot 2.0和Project Reactor等技术开发 旨在为微服务架构提供一种简单有效的、统一的API路由管理方式&#xff0c;并为微服务架构提供安全、监控、指标和弹性等功能 其目标是替代Zuul特点 易于编写谓词和过滤器&…

MM1: Methods, Analysis Insights from Multimodal LLM Pre-training

MM1: Methods, Analysis & Insights from Multimodal LLM Pre-training 相关链接&#xff1a;arxiv 关键字&#xff1a;多模态学习、大型语言模型、预训练、视觉语言连接、混合专家模型 摘要 本文讨论了构建高性能的多模态大型语言模型&#xff08;MLLMs&#xff09;。特别…

OPTIONS请求(跨域预检查)

目录 一、什么是OPTIONS请求&#xff1f;二、简单请求、复杂请求三、特定的请求头、响应头 一、什么是OPTIONS请求&#xff1f; OPTIONS 请求方式是 HTTP 协议中的一种&#xff0c;主要用于 从响应头中获取服务器支持的HTTP请求方式。 OPTIONS 请求方式是 浏览级行为&#xf…

【SpringCloud微服务实战02】Ribbon 负载均衡

Ribbon使用 Eureka中已经集成了Ribbon,无需额外引入,通过 @LoadBalanced 注解在请求中使用 Ribbon 负载均衡: @Bean @LoadBalancedpublic RestTemplate restTemplate() {return new RestTemplate(); } Ribbon工作流程图 Ribbon负载均衡策略 修改Ribbon负载均衡策略 方式一…

从0开始启动一个Django的docker服务

本文是从0开始启动一个Django的docker服务&#xff0c;包括构建镜像,uwsgi启动服务 在服务器上安装ssh&#xff0c;git&#xff0c;生成公钥并复制到服务器上 # 安装ssh yum install openssh-clients # 生成sshkey ssh-keygen # 查看公钥 cat /root/.ssh/id_rsa.pubclone一下…

Text-to-SQL 工具Vanna | 查看训练数据、删除训练数据

1.查看训练数据vn.get_training_data vn.get_training_data 源码如下&#xff0c;可以看到返回的是df格式的数据 abstractmethoddef get_training_data(self, **kwargs) -> pd.DataFrame:"""Example:pythonvn.get_training_data()This method is used to ge…

Brute Force 算法介绍

Brute Force 算法介绍 Brute Force 算法&#xff1a;简称为 BF 算法。中文意思是暴力匹配算法&#xff0c;也可以叫做朴素匹配算法。 BF 算法思想&#xff1a;对于给定文本串 T 与模式串 p&#xff0c;从文本串的第一个字符开始与模式串 p 的第一个字符进行比较&#xff0c;如果…

计算机考研|408专业课复习教程+注意事项

408其实把真题琢磨透就已经可以了&#xff01;其实大部分考研党复习到最后真题都来不及刷完就要上考场 因为在考研后期时间分配真的很困难&#xff01;特别是数学和408 本人双非科班出身备考408成功上岸&#xff0c;在这里也想给想考408的学弟学妹们一些很中肯的&#xff0c;…

干重活儿的互联网

接女儿放学路过欧尚超市&#xff0c;我说 “十年前我每周末推着小车带你去超市&#xff0c;那时没有这么多送外卖的&#xff0c;什么东西都要自己跑过去买”&#xff0c;“你的意思是要表达科技获得很大进步了吗&#xff1f;” 女儿反问&#xff0c;“不&#xff0c;恰恰相反&a…

FTP协议的工作原理:探索端口21的角色

FTP协议的工作原理&#xff1a;探索端口21的角色 在网络协议的众多家族中&#xff0c;文件传输协议&#xff08;FTP&#xff09;以其稳定性和高效性在文件上传和下载领域占有一席之地。FTP的设计允许用户在客户端和服务器之间进行文件传输&#xff0c;而理解其背后的端口机制是…

<JavaEE> 了解网络层协议 -- IP协议

目录 初识IP协议 什么是IP协议&#xff1f; IP协议中的基础概念 IP协议格式 图示 4bit版本号&#xff08;version&#xff09; 4bit头部长度&#xff08;headerlength&#xff09; 8bit服务类型&#xff08;TypeOfService&#xff09; 16bit总长度&#xff08;total l…

Java面试——SQL 语句题

优质博文&#xff1a;IT-BLOG-CN 一、行转列问题 现有表格A&#xff0c;按照以下格式排列&#xff1b; 姓名收入类型收入金额Tom年奖金5wTom月工资10kJack年奖金8wJack月工资12k 先需要将表格转化为&#xff1a; 姓名月工资年奖金Tom10k50kJack12k80k 方法一&#xff1a;…

C语言-strstr(字符串里查找字符串)

strstr&#xff08;字符串里查找字符串&#xff09; 语法格式 库函数实现的逻辑 1&#xff0c;返回一个指向str2在str1中第一次出现的位置&#xff0c;如果str2不是p&#xff0c;则返回一个空指针&#xff0c;函数返回字符串str2在字符串str1中第一次出现的位置) 2&#xf…

SpringBoot3项目框架搭建

注意jdk版本必须17以上才能运行 1、创建Maven工程 2、导入spring-boot-stater-web起步依赖 3、编写Controller 4、提供启动类 5、访问http://localhost:8080/hello