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

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.lryc.cn/news/270358.html

相关文章:

  • 3D视觉-结构光测量-线结构光测量
  • ssm基于web的马病管理系统设计与实现+jsp论文
  • SaaS版Java基层健康卫生云HIS信息管理平台源码(springboot)
  • redis,memcached,nginx网络组件,网络编程——reactor的应用
  • 【机电、机器人方向会议征稿|不限专业|见刊快】2024年机械、 图像与机器人国际会议(IACMIR 2024)
  • uniapp学习之路
  • 移动开发新的风口?Harmony4.0鸿蒙应用开发基础+实践案例
  • QT上位机开发(倒计时软件)
  • 2023 楚慧杯 --- Crypto wp
  • Python+OpenCV 零基础学习笔记(1-3):anaconda+vscode+jupyter环境配置
  • Spring Cloud Gateway 常见过滤器的基本使用
  • maven依赖无法传递问题排查
  • JVM钩子
  • linux cat命令增加-f显示文件名功能
  • linux更改登录shell
  • 【JS】报错:Uncaught TypeError: Cannot read properties of null (reading ‘classList‘)
  • kali2.0安装VMware Tools 和自定义改变分辨率
  • redis中根据通配符删除key
  • 【HDFS联邦(2)】HDFS Router-based Federation官网解读:HDFSRouterFederation的架构、各组件基本原理
  • 【头歌实训】Spark 完全分布式的安装和部署
  • Leetcode—86.分隔链表【中等】
  • 淘宝/天猫商品API:实时数据获取与安全隐私保护的指南
  • 使用 SSH 方式实现 Git 远程连接GitHub
  • Centos7部署Keepalived+lvs服务
  • 12/31
  • python使用openpyxl为excel模版填充数据,生成多个Sheet页面
  • 基于ssm的4S店预约保养系统开发+vue论文
  • 【Git】Git的基本操作
  • 【超图】SuperMap iClient3D for WebGL/WebGPU —— 数据集合并缓存如何控制对象样式
  • intellij IDEA开发工具的使用(打开/关闭工程;删除类文件;修改类/包/模块/项目名称;导入/删除模块)