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

目前市面上做网站的程序本周新闻热点

目前市面上做网站的程序,本周新闻热点,平台网站建设推荐,安阳网站建设报价前言:在使用ArkTs语言写鸿蒙的App中,我们发现Page的生命周期函数,如下: 页面的生命周期(32) onPageShow:页面显示触发(页面特有) onPageHide:页面隐藏触发(页面特有) onBackPress:当用户点击返回按钮时…

前言:在使用ArkTs语言写鸿蒙的App中,我们发现Page的生命周期函数,如下:

页面的生命周期(3+2)

onPageShow:页面显示触发(页面特有)

onPageHide:页面隐藏触发(页面特有)

onBackPress:当用户点击返回按钮时触发(页面特有)

aboutToAppear:组件即将出现时触发

aboutToDisappear:组件即将析构销毁时触发

组件的生命周期(2)

aboutToAppear:组件即将出现时触发

aboutToDisappear:组件即将析构销毁时触发

UIAbility组件生命周期函数

onCreate: UIAbility实例创建完成时触发

onForeground: 在UIAbility的UI可见之前

onBackground: 在UIAbility的UI完全不可见之后

onDestroy: 在UIAbility实例销毁时触发

WindowStage窗口生命周期函数

onWindowStageCreate 窗口才能构建

onWindowStageDestroy 窗口销毁

而我们的页面生命周期函数,aboutToAppear只会触发一次,如果我们的页面视图需要每次出现的时候都要刷新或者请求,就会发现没法触发生命周期函数,在ios的项目中有viewwillappare这个函数,这样就很好处理,但是鸿蒙中没有这样的生命周期函数。
我们的项目路由采用的是hmrouter框架,hmrouter的框架中的生命周期方法就比鸿蒙系统的方法就多了很多。hmrouter的具体用法,我就不在此详细介绍了,需要学习的可以去官网学习下用法。生命周期如下:

export abstract class AbstractLifecycle implements IHMLifecycle {observerMap: Map<HMLifecycleState, Array<(ctx: HMLifecycleContext) => HMLifecycleAction>> = new Map()onPrepare(ctx: HMLifecycleContext): HMLifecycleAction {return HMLifecycleAction.DO_NEXT()}onAppear(ctx: HMLifecycleContext): HMLifecycleAction {return HMLifecycleAction.DO_NEXT()}onDisAppear(ctx: HMLifecycleContext): HMLifecycleAction {return this.runObserver(HMLifecycleState.onDisAppear, ctx)}onShown(ctx: HMLifecycleContext): HMLifecycleAction {return this.runObserver(HMLifecycleState.onShown, ctx)}onHidden(ctx: HMLifecycleContext): HMLifecycleAction {return this.runObserver(HMLifecycleState.onHidden, ctx)}onWillAppear(ctx: HMLifecycleContext): HMLifecycleAction {return HMLifecycleAction.DO_NEXT()}onWillDisappear(ctx: HMLifecycleContext): HMLifecycleAction {return this.runObserver(HMLifecycleState.onWillDisappear, ctx)}onWillShow(ctx: HMLifecycleContext): HMLifecycleAction {return this.runObserver(HMLifecycleState.onWillShow, ctx)}onWillHide(ctx: HMLifecycleContext): HMLifecycleAction {return this.runObserver(HMLifecycleState.onWillHide, ctx)}onReady(ctx: HMLifecycleContext): HMLifecycleAction {return HMLifecycleAction.DO_NEXT()}onBackPressed(ctx: HMLifecycleContext): boolean {return this.runObserver(HMLifecycleState.onBackPressed, ctx).value}

hmrouter的生命周期监听方法太多了,完全够用了。具体用法如下:

export class PageDurationLifecycle extends AbstractLifecycle {private timeMap: Map<string, number> = new Map();onShown(ctx: HMLifecycleContext): HMLifecycleAction {const pageName = ctx.navContext?.pathInfo.name;let param =  ctx.navContext?.pathInfo.param as object;WinLog.info('PageDurationLifecycle onShown pageName:' + pageName)if (pageName) {this.timeMap.set(pageName, new Date().getTime())if (pageName=="LoginPage"){AppStorage.set<boolean>('loginOnPageShow', true);}}return HMLifecycleAction.DO_NEXT();}onHidden(ctx: HMLifecycleContext): HMLifecycleAction {const pageName = ctx.navContext?.pathInfo.nameWinLog.info('PageDurationLifecycle onHidden pageName:' + pageName)if (pageName && this.timeMap.has(pageName)) {const duration = new Date().getTime() - (this.timeMap.get(pageName) as number);this.timeMap.delete(pageName);WinLog.info(`Page ${pageName} stay ${duration} ms`);if (pageName=="LoginPage"){AppStorage.set<boolean>('loginOnPageShow', false);}}return HMLifecycleAction.DO_NEXT();}}

你通过日志观察就会发现,每当LoginPage出现的时候就会调用onShown方法,消失的时候就会调用onHidden方法,那我采用的是AppStorage存储页面的状态,通过监听loginOnPageShow的值来判断页面的生命周期

在LoginPage页面:

@StorageProp('loginOnPageShow') @Watch('onChangeVisibility') pageVisible: boolean = false;onChangeVisibility(){WinLog.debug("MVListAcvtPage 是否展示--->"+this.curPageVisibility)if (this.curPageVisibility) {this.getSubFuncBeanVisitAction()}}
```hmrouter
这样就通过hmrouter框架实现了Page的生命周期的监听,当然hmrouter框架还有很多生命周期方法,你都可以试试。
http://www.dtcms.com/wzjs/400741.html

相关文章:

  • 哪里有做企业网站的我想做app推广怎么做
  • 做网站三级等保多少钱建站模板平台
  • wordpress页面woo分类seo关键词选择及优化
  • 南平网站怎么做seo网站快速排名优化
  • 如何用模板做网站视频买卖网交易平台
  • WordPress目录筛选百度seo优化包含哪几项
  • 兰州网站设计哪个平台好石家庄seo外包的公司
  • 做智能网站系统下载地址无锡seo排名收费
  • 大渡口区建委网站微信营销模式有哪些
  • 网站建设与管理案例教程在线阅读电商网站
  • 杭州哪里做网站拓客渠道有哪些
  • 央企网站开发哪里可以买链接网站
  • 视频作品投票网站如何做今日百度小说排行榜风云榜
  • 瀑布流分享网站源代码下载谷歌广告
  • 做决定网站营销软文范文
  • 服务器做两个网站外贸网站seo
  • 可遇公寓网站哪个公司做的百度网盘账号登录入口
  • 台州网站建设技术支持seo管理系统
  • 金融网站制作天津的网络优化公司排名
  • 太原网站建设哪家效益快网站点击率查询
  • 湖州 网站建设公司亚马逊seo推广
  • 局网站建设再上新台阶百度引擎提交入口
  • 学院网站建设计划如何搜索关键词
  • 嘉兴网站免费制作拼多多关键词排名查询软件
  • 怎么样在b2b网站做推广搜索引擎排名2020
  • 长沙好的网站建设公司西安网站seo优化公司
  • 如何添加网站后台seo排名官网
  • 网站维护是不是很难做重庆营销型网站建设公司
  • 潍坊设计网站建设关键词分析
  • 东莞网站建设百度地图实时seo排名点击软件