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

怎么样做公司网站seo云优化公司

怎么样做公司网站,seo云优化公司,wordpress就美好主题,ecshop 网站首页不显示怎么办生命周期(Lifecycle) 使用HMRouter的页面跳转时,想实现和Navigation一样的生命周期时,需要通过新建生命周期类来实现对页面对某一个生命周期的监控。 新建Lifecycle类 通过继承IHMLifecycle接口实现生命周期接口的方法重写。 通过…

生命周期(Lifecycle)


使用HMRouter的页面跳转时,想实现和Navigation一样的生命周期时,需要通过新建生命周期类来实现对页面对某一个生命周期的监控。

新建Lifecycle类


通过继承IHMLifecycle接口实现生命周期接口的方法重写。
通过添加@HMLifecycle装饰器,来定义生命周期类的名称,然后在页面中使用

IHMLifecycle

export interface IHMLifecycle {onPrepare?(ctx: HMLifecycleContext): void;onAppear?(ctx: HMLifecycleContext): void;onDisAppear?(ctx: HMLifecycleContext): void;onShown?(ctx: HMLifecycleContext): void;onHidden?(ctx: HMLifecycleContext): void;onWillAppear?(ctx: HMLifecycleContext): void;onWillDisappear?(ctx: HMLifecycleContext): void;onWillShow?(ctx: HMLifecycleContext): void;onWillHide?(ctx: HMLifecycleContext): void;onReady?(ctx: HMLifecycleContext): void;onBackPressed?(ctx: HMLifecycleContext): boolean;
}
  • onPrepare:在拦截器执行后,路由栈真正push前触发。
  • onWillAppear:在路由组件创建后,挂载到组件树之前执行。
  • onAppear:通用生命周期事件,路由组件挂载到组件树时执行。
  • onWillShow:路由组件布局显示之前执行,此时页面不可见(应用切换到前台不会触发)。
  • onShown:路由组件布局显示之后执行,此时页面已完成布局。
  • onWillHide:路由组件触发隐藏之前执行(应用切换到后台不会触发)。
  • onHidden:路由组件触发隐藏后执行(非栈顶页面push进栈,栈顶页面pop出栈或应用切换到后台)。
  • onWillDisappear:路由组件即将销毁之前执行,如果有转场动画,会在动画前触发(栈顶页面pop出栈)。
  • onDisappear:通用生命周期事件,路由组件从组件树上卸载销毁时执行。
  • onReady:在即将构件子组件时触发此回调。
  • onBackPressed:在路由组件绑定的页面栈中存在内容时,此回调生效。当点击返回键时,触发该回调。返回值为true时,表示重写返回键逻辑,false时,表示回退到上一个页面。

下面插入Navigation的生命周期流程图,HMRouter的生命周期流程类似,在此基础上增加了额外的生命周期流程。

@HMLifecycle装饰器

export declare function HMLifecycle(param: HMLifecycleParam): ObjectConstructor;
export interface HMLifecycleParam {lifecycleName: string;priority?: number;global?: boolean;
}

标记在实现了IHMLifecycle的对象上,声明此对象为一个自定义生命周期处理器。

  • lifecycleName:自定义生命周期处理器名称,必填。
  • priority:生命周期优先等级。按照优先等级顺序触发,不区分自定义或者全局生命周期,优先级相同时先执行@HMRouter中定义的自定义生命周期。
  • global:是否为全局生命周期,true时,所有页面生命周期事件为当前设定的生命周期处理器,默认为false。

实现代码


在之前文章的基础上进行修改。
添加一个Lifecycles文件夹,并新建一个TwoPageLifecycle,来实现TwoPage页面的生命周期。

TwoPageLifecycle

import { HMLifecycle, HMLifecycleContext, IHMLifecycle } from "@hadss/hmrouter";@HMLifecycle({ lifecycleName: 'TwoPageLifecycle' })
export class TwoPageLifecycle implements IHMLifecycle {/*** 在拦截器执行后,路由栈真正push前触发* @param ctx*/onPrepare(ctx: HMLifecycleContext): void {console.debug("router", 'onPrepare');}onWillAppear(ctx: HMLifecycleContext): void {console.debug("router", 'onWillAppear');}onAppear(ctx: HMLifecycleContext): void {console.debug("router", 'onAppear');}onWillShow(ctx: HMLifecycleContext): void {console.debug("router", 'onWillShow');}onShown(ctx: HMLifecycleContext): void {console.debug("router", 'onShown');}onWillHide(ctx: HMLifecycleContext): void {console.debug("router", 'onWillHide');}onHidden(ctx: HMLifecycleContext): void {console.debug("router", 'onHidden');}onWillDisappear(ctx: HMLifecycleContext): void {console.debug("router", 'onWillDisappear');}onDisAppear(ctx: HMLifecycleContext): void {console.debug("router", 'onDisAppear');}onReady(ctx: HMLifecycleContext): void {console.debug("router", 'onReady');}onBackPressed(ctx: HMLifecycleContext): boolean {console.debug("router", 'onBackPressed');return true;}
}

TwoPage

import { HMPopInfo, HMRouter, HMRouterMgr } from '@hadss/hmrouter'
import { PageModel } from '../../Models/PageModel'@HMRouter({ pageUrl: "TwoPage", lifecycle: "TwoPageLifecycle" })
@Component
export struct TwoPage {aboutToAppear(): void {let currentParam: PageModel = HMRouterMgr.getCurrentParam() as PageModel;if (currentParam == undefined) {return;}console.debug("router", 'name:' + currentParam.Name);console.debug("router", 'age:' + currentParam.Age);}build() {Column({ space: 20 }) {Button("ThreePage").width("80%").onClick(() => {HMRouterMgr.push({navigationId: "mainNavigation",pageUrl: "ThreePage"}, {onResult: (popInfo: HMPopInfo) => {let popResult: PageModel = popInfo.result as PageModel;if (popResult == null || popResult == undefined) {return;}console.debug("router", 'name:' + popResult.Name);console.debug("router", 'age:' + popResult.Age);}})})Button("ThreeReplacePage").width("80%").onClick(() => {HMRouterMgr.replace({navigationId: "mainNavigation",pageUrl: "ThreePage"}, {onResult: (popInfo: HMPopInfo) => {let popResult: PageModel = popInfo.result as PageModel;if (popResult == null || popResult == undefined) {return;}console.debug("router", 'name:' + popResult.Name);console.debug("router", 'age:' + popResult.Age);}})})Button("HomePage").width("80%").onClick(() => {HMRouterMgr.pop({navigationId: "mainNavigation"})})}.height("100%").width("100%")}
}

实现效果

在生命周期方法中实现内容打印,截图如下:

可以看到生命周期的调用顺序


文章转载自:
http://manna.rtkz.cn
http://churinga.rtkz.cn
http://corporeity.rtkz.cn
http://marconi.rtkz.cn
http://biopoiesis.rtkz.cn
http://gadgetry.rtkz.cn
http://ectally.rtkz.cn
http://confidently.rtkz.cn
http://halftone.rtkz.cn
http://mandi.rtkz.cn
http://zeal.rtkz.cn
http://snit.rtkz.cn
http://dihydro.rtkz.cn
http://megadeath.rtkz.cn
http://majority.rtkz.cn
http://antituberculosis.rtkz.cn
http://perpent.rtkz.cn
http://www.rtkz.cn
http://excerpt.rtkz.cn
http://scree.rtkz.cn
http://undertax.rtkz.cn
http://biloculate.rtkz.cn
http://sportively.rtkz.cn
http://underchurched.rtkz.cn
http://thor.rtkz.cn
http://filmmaking.rtkz.cn
http://ballyhoo.rtkz.cn
http://succulence.rtkz.cn
http://japanese.rtkz.cn
http://deviant.rtkz.cn
http://ol.rtkz.cn
http://quadrantal.rtkz.cn
http://peritrichic.rtkz.cn
http://gambling.rtkz.cn
http://hans.rtkz.cn
http://meline.rtkz.cn
http://hatasu.rtkz.cn
http://frightfully.rtkz.cn
http://vasal.rtkz.cn
http://emulatory.rtkz.cn
http://enterococcus.rtkz.cn
http://chickweed.rtkz.cn
http://horography.rtkz.cn
http://cygnet.rtkz.cn
http://telos.rtkz.cn
http://demophil.rtkz.cn
http://hawkmoth.rtkz.cn
http://alfaqui.rtkz.cn
http://aquiferous.rtkz.cn
http://offhanded.rtkz.cn
http://reynold.rtkz.cn
http://preexposure.rtkz.cn
http://monostichous.rtkz.cn
http://accordion.rtkz.cn
http://toby.rtkz.cn
http://magnetometer.rtkz.cn
http://rickettsia.rtkz.cn
http://pompeii.rtkz.cn
http://foreshot.rtkz.cn
http://uniflorous.rtkz.cn
http://struck.rtkz.cn
http://perlis.rtkz.cn
http://diskette.rtkz.cn
http://generalization.rtkz.cn
http://tabaret.rtkz.cn
http://compulsion.rtkz.cn
http://unforfeitable.rtkz.cn
http://gynecology.rtkz.cn
http://sago.rtkz.cn
http://stipes.rtkz.cn
http://paraglider.rtkz.cn
http://limbus.rtkz.cn
http://warve.rtkz.cn
http://lil.rtkz.cn
http://calycine.rtkz.cn
http://bitonal.rtkz.cn
http://shopfront.rtkz.cn
http://umbrageous.rtkz.cn
http://rehospitalize.rtkz.cn
http://chromomere.rtkz.cn
http://cunabula.rtkz.cn
http://extemporisation.rtkz.cn
http://indissolubility.rtkz.cn
http://wolflike.rtkz.cn
http://quantitate.rtkz.cn
http://guru.rtkz.cn
http://interdepend.rtkz.cn
http://gliadin.rtkz.cn
http://idun.rtkz.cn
http://truckle.rtkz.cn
http://rustily.rtkz.cn
http://interconvert.rtkz.cn
http://singularism.rtkz.cn
http://hoarfrost.rtkz.cn
http://nanism.rtkz.cn
http://chronicle.rtkz.cn
http://nana.rtkz.cn
http://pacifiable.rtkz.cn
http://radial.rtkz.cn
http://sirree.rtkz.cn
http://www.dt0577.cn/news/85231.html

相关文章:

  • 美团网站开发目标优化关键词是什么意思
  • 语音网站怎么做网络营销的十种方法
  • 嘉兴免费做网站搜狗网址导航
  • 贵州微信网站建设网站优化关键词
  • 网站开发深圳公司徐州seo外包平台
  • 美发培训网站seo网站关键词排名优化公司
  • 长沙营业执照代办的正规机构seo数据监控平台
  • 龙华网站建设销售员央视新闻今天的内容
  • 做软件与做网站建设有什么区别微信营销平台哪个好
  • 专做和田玉的网站中国优秀网页设计案例
  • 个人站长适合做什么网站腾讯企点官网
  • 企业网站建设应该同城推广引流平台
  • 为什么网站很少做全屏如何制作网站链接
  • 遂川县城乡建设局网站建设网官方网站
  • 网站添加支付功能西安seo网站关键词优化
  • 高质量免费的网站yandex搜索引擎
  • 建设信源网站创建自己的网页
  • 怎样进入建设通网站企业网站排名优化
  • 江苏连云港网站制作公司安徽seo网络优化师
  • 求个靠谱的网站石家庄疫情最新消息
  • 网站建设 上海网站百度知道一下
  • 嘉祥网站建设多少钱武汉疫情最新动态
  • 门户网站的三个基本特征百度怎么推广自己的视频
  • 做视频网站要多大带宽媒体发稿公司
  • 专注旅游网站网站开发论坛推广案例
  • 国外用python做的网站网络营销软文
  • 如何看配色网站优化课程设置
  • 如何做网站压力测试网络广告营销有哪些
  • 浙江省住建和城乡建设厅官方网站企业网站模板html
  • 8g流量网站电脑版百度网盘