利用onPageShow实现返回刷新的操作

上海张律师
• 阅读 2

​ ##HarmonyOS 应用开发##

之前提到过aboutToAppear和onPageShow的区别以及基础的概念,今天我们来聊一下这两个在实际项目中的应用。如果你写过小程序的话,可以将aboutToAppear类别成onLoad,onPageShow类别为onShow,他们的逻辑是相同的。

可以试想一下这样的应用场景:

这是一个论坛的贴子列表页面,右下角有一个“新增贴子”的按钮,点击以后进入新增贴子的页面,然后当用户输入了内容点击提交后,提示“新增成功”,并返回到列表页。那么这时候,列表页要做的就是刷新贴子列表,把刚才新发布的贴子显示出来。

或者

这是一个商品列表页,左边是商品分类,右边是对应的商品列表,然后在每个商品信息那里,都显示了有多少个被加入了购物车,点击商品进入了商品详情页,在详情页中,用户可以把商品加入购物车,当返回到列表页时,对应的商品信息中的购物车数量要进行改变。

当然,有很多种实现方法,例如说我认为比较合理的订阅消息提醒emitter(这个后面会提到)、跨组件的@Watch装饰器,或者更麻烦的LocalStorage等……

在平时写毕设项目的时候,我发现其实最简单的……还是用onPageShow,因为onPageShow的意思是:当这个页面显示以后执行什么代码。我们以刚刚场景中的第一种为例,假设贴子列表页为A,新增贴子的页面为B,从A跳转到B的时候,一般我们用的都是router.push进行跳转的,用通俗的讲法来说,就是A页面上,覆盖了B页面,所以你看到的是B页面,但是这个时候,A页面仍然是存在的,只不过因为被覆盖了所以看不到(现在官方主推navigation,就是因为有的开发者,不停的去覆盖,覆盖了一堆页面,然后底下被覆盖的又存在着,极度影响性能),然后从B页面返回的时候,就是把B页面从这一堆页面里拿走,这样A页面又被显示了,你就能看到A页面了。所以这个时候,A页面的onPageShow就会被触发了……

那么如果把从后端获取数据的接口代码写在onPageShow里的话,那么只要从第二个页面返回到列表页,都能够刷新数据。当然……这种写法也就是在毕设或者在不常显示的页面里可以用用,否则无论在跳转后的页面里是否进行了对应的操作(比如新增了贴子),都会去重新获取数据。

最后,为了贴子的完整性,我们再看一下官方对于生命周期的执行顺序图片:

利用onPageShow实现返回刷新的操作

点赞
收藏
评论区
推荐文章
陈杨 陈杨
1个月前
HarmonyOS5云服务技术分享--账号登录文章整理
嘿,各位开发者朋友!今天咱们来聊一聊鸿蒙生态中备受关注的ArkTS(API12),尤其是如何用它快速实现华为账号登录功能。不管你是刚接触HarmonyOS的新手,还是想升级现有项目的技术咖,这篇实战指南都能让你轻松上手~🌟一、准备工作:配置你的开发环境​
GeorgeGcs GeorgeGcs
18小时前
【 HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解
【HarmonyOS5入门系列】鸿蒙HarmonyOS示例项目讲解\鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言:移动开发声明式UI框架的技术变革在移动操作系统的发展历程中,UI开发模式经历了从命令式到声明式的重大变革。根据
GeorgeGcs GeorgeGcs
18小时前
【HarmonyOS 5】AttributeModifier和AttributeUpdater区别详解
【HarmonyOS5】AttributeModifier和AttributeUpdater区别详解\鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、AttributeModifier和AttributeUpdater的定义和作用1
GeorgeGcs GeorgeGcs
12小时前
从“备胎”到领航者,鸿蒙操作系统的传奇进化
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财【HarmonyOS5】2019年,在全球科技产业的风云变幻中,华为正式推出了鸿蒙操作系统(HarmonyOS),这一消息如同一颗重磅炸弹,瞬间吸引了全世界的目光。彼时,外界对鸿蒙的诞生背
上海张律师 上海张律师
12小时前
关于生命周期中的aboutToAppear和onPageShow的理解和应用
​HarmonyOS应用开发在官网的“自定义组件的生命周期”这一章节当中介绍的生命周期中,有两个对开发我觉得很重要的生命周期,分别是aboutToAppear和onPageShow。首先来看一下这两个生命周期的官方文档说明:aboutToAppear:ab
上海张律师 上海张律师
12小时前
如何监听组件再次显示的事件?
​HarmonyOS应用开发我们知道,对于组件的生命周期,有aboutToAppear和aboutToDisAppear,即监听这个组件被挂载和卸载的事件,和被@Entry修饰的页面不同,组件是没有每次显示都能触发的onPageShow这个生命周期的,但是
GeorgeGcs GeorgeGcs
10小时前
鸿蒙 6.0 引爆 AI 智能体革命:从交互重构到全场景智能觉醒,未来已至
【HarmonyOS5】鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言今天的华为开发者大会(2025HDC),全程看完,我只想说,震撼对于用户来说,一个未来场景的手机操作系统,正在诞生,从文本交互的操作转向自然语言,未来手机用
GeorgeGcs GeorgeGcs
10小时前
【HarmonyOS 5】使用openCustomDialog如何禁止手势关闭的方案
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言在HarmonyOS中使用openCustomDialog自定义弹框时,我们会遇到实现禁止手势关闭弹框的业务场景。虽然在HarmonyOSNext中,自定义Dialog默认可能继承
GeorgeGcs GeorgeGcs
8小时前
【HarmonyOS 5】鸿蒙用户头像编辑功能实践
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言1、应用背景在鸿蒙化开发过程中,我们发现最基本常见的功能用户头像的编辑,实现方式和Android与IOS有极大的不同。在实际开发和调研的过程中,我们发现并总结了鸿蒙隐私处理与业内A
GeorgeGcs GeorgeGcs
8小时前
【HarmonyOS 5】鸿蒙页面和组件生命周期函数
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、生命周期阶段:创建阶段build:构建组件的UI结构和样式。onDidBuild:build方法执行完毕后调用,可用于数据初始化或额外的UI调整。挂载阶段onPageShow:页面显示