HarmonyOS page生命周期函数讲解

下面 我们又要看一个比较重要的点了
页面生命周期

页面组件有三个生命周期
onPageShow 页面显示时触发
onPageHide 页面隐藏时触发
onBackPress 页面返回时触发

这里 我们准备两个组件
首先是 index.ets 参考代码如下

import router from '@ohos.router'
@Entry
@Component
struct Index {build() {Row() {Column() {Button("跳转").onClick(()=>{router.pushUrl({url: "pages/AppView"})})}.width('100%')}.height('100%')}//页面显示时触发onPageShow() {console.log("index onPageShow触发");}//页面隐藏时触发onPageHide() {console.log("index onPageHide触发");}//页面返回时触发onBackPress() {console.log("index onBackPress触发");}
}

我们引入了 router 路由模块 然后定义了三个生命周期
然后 设置了一个button按钮 点击跳转向 pages/AppView页面

然后 AppView.ets 参考代码如下

import router from '@ohos.router'
@Entry
@Component
struct AppView {build() {Column(){Button("返回").onClick(()=>{router.back();})}.width('100%').height('100%')}//页面显示时触发onPageShow() {console.log("AppView onPageShow触发");}//页面隐藏时触发onPageHide() {console.log("AppView onPageHide触发");}//页面返回时触发onBackPress() {console.log("AppView onBackPress触发");}
}

这里 我们也是先引入router
button按钮点击 调用 router.back 返回上一个界面
然后也定义了三个生命周期

然后 我们打开预览器 运行index组件 然后 index 组件 被显示 onPageShow生命周期随之触发
在这里插入图片描述
这里 需要注意 控制台下面有选择 我们要选log 才能看到 console.log打印的内容
默认启动的是 PreviewerLog 预览控制台
在这里插入图片描述
然后 我们点击跳转 它就会跳转到 AppView 界面
因为已经跳转 index 组件隐藏 onPageHide 触发 然后 AppView 页面显示 onPageShow触发
在这里插入图片描述
我们点击返回

调回 index界面 AppView被隐藏 触发onPageHide
index 显示触发 onPageShow
在这里插入图片描述
那么问题来了 onBackPress好像一直没触发呀

这个函数是页面返回时 触发 这里所说的返回不是说 router.back
而是手机App自带顶部的返回按钮
如下图指向的这种退出按钮 才会触发
在这里插入图片描述

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

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

相关文章

gFTP - 多线程 FTP 客户端工具

gFTP - 多线程 FTP 客户端工具 1. Download gFTP2. GUIReferences https://github.com/masneyb/gftp gFTP is a free and open-source multithreaded File Transfer Protocol client program. It is most used on Unix-like systems such as Linux, macOS, and Sony PlayStati…

FPGA设计时序约束十四、Set_External_Delay

一、序言 在时序约束中对clock的约束还存在一种特殊的延时约束set external delay。set external delay如字面含义,设置外部的时延值,但这个外部时延主要是指反馈时延,即信号从FPGA的output端口输出后经过外部电路回到输入端口的时延值。 二…

如何文件从电脑传到iPhone,这里提供几个方法

本文介绍了如何使用Finder应用程序、iTunes for Windows、iCloud和谷歌照片将照片从Mac或PC传输到iPhone。 如何将照片从Mac传输到iPhone 如果你有一台Mac电脑,里面装满了你想转移到iPhone的照片,这是一件非常简单的事情。只需遵循以下步骤&#xff1a…

AI大模型时代下运维开发探索第二篇:基于大模型(LLM)的数据仓库

在SREWorks社区聚集了很多进行运维数仓建设的同学,大家都会遇到类似的挑战和问题: 数仓中存储大量数据消耗成本,但很多存储的数据却并没有消费。进数仓的ETL学习成本高、管理成本高,相关同学配合度低,以及上游结构改动…

手写Spring与基本原理--简易版

文章目录 手写Spring与基本原理解析简介写一个简单的Bean加载容器定义一个抽象所有类的BeanDefinition定义一个工厂存储所有的类测试 实现Bean的注册定义和获取基于Cglib实现含构造函数的类实例化策略Bean对象注入属性和依赖Bean的功能Spring.xml解析和注册Bean对象实现应用上下…

数据结构--二叉搜索树的实现

目录 1.二叉搜索树的概念 2.二叉搜索树的操作 二叉搜索树的插入 中序遍历(常用于排序) 二叉搜索树的查找 二叉搜索树的删除 完整二叉树代码: 二叉搜索树的应用 key/value搜索模型整体代码 1.二叉搜索树的概念 二叉搜索树又称二叉排序树,它或者是一…

写实风格3D模型材质贴图

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 写实3D模型的制作过程包括建模、材质贴图、灯光设置和渲染等步骤。首…

java spring boot 自定义 aop

以一个锁的加锁和释放为例 1、先定义注解 /*** 锁切面* author fmj*/ Retention(RetentionPolicy.RUNTIME) Target(ElementType.METHOD) public interface VersionLockAOP { }2、然后定义切面类以及切点 /*** 切面*/ Component Aspect Slf4j public class VersionLockAOPAspe…

详解“量子极限下运行的光学神经网络”——相干伊辛机

量子计算和量子启发计算可能成为解答复杂优化问题的新前沿,而经典计算机在历史上是无法解决这些问题的。 当今最快的计算机可能需要数千年才能完成高度复杂的计算,包括涉及许多变量的组合优化问题;研究人员正在努力将解决这些问题所需的时间缩…

基于PyQt5自定义UI的详细教程

PyQt5和Qt designer的详细安装教程:https://blog.csdn.net/qq_43811536/article/details/135185233?spm1001.2014.3001.5501Qt designer界面和所有组件功能的详细介绍:https://blog.csdn.net/qq_43811536/article/details/135186862?spm1001.2014.3001…

提升数据库性能的关键指南-Oracle AWR报告

文章目录 一、了解AWR报告:数据库性能的仪表盘二、生成AWR报告三、解读AWR报告的关键部分1.报告开头的系统基础信息2.ADDM发现3.负载概览(Load Profile)4.参数文件5.顶级前台等待事件6.SQL 统计信息-顶级SQL7.SGA Advisory AND PAG Advisory 一、了解AWR报告&#x…

MYSQL二主二从集群部署

目录 一、环境描述 二、安装mysql 2.1 卸载mysql(如果没安装过,可忽略) 2.1.1 列出安装的mysql 2.1.2 卸载mysql 2.1.3 删除mysql文件目录 2.1.3.1 查看mysql 目录 2.1.3.2 依次删除 2.2 在线安装 2.2.1 下载安装源 2.2.2 安装源rpm 2.2.3 加入rpm密钥 …