【鸿蒙修仙之筑基篇】->页面和自定义组件生命周期

145 阅读4分钟

今日任务

  • 剖析鸿蒙页面和自定义组件构成及生命周期

修真前言

随着法则的精进,我也开始步入新的法则修炼篇章,有了基础法则的底子,我很快就适应了其他的法则之力,下一个周期的法则修炼,是让我了解整个法则之力的运化过程,能让我对法则之力的感悟更加的深刻,读完导学篇我才知道只有将整个法则之力运化的生命周期了解清楚才能够更好的去使用它,在牵动法则之力时大大缩短时间宛如流淌在自身一般,我欣喜若狂,意识直接遁入空间开启了我的修炼………………

自定义组件和页面的关系

  • 自定义组件:被@Componen修饰的UI单元,拥有三个特点:可组合,可重用,数据驱动UI采用状态变量
  • 页面:被@Entry修饰的自定义组件作为页面的入口,一个页面有且只有一个

自定义组件和页面的生命钩子

自定义组件生命周期

  • aboutToAppear:组件即将出现时回调该接口,具体时机为在创建自定义组件的新实例后,在执行其build()函数之前执行。
  • aboutToDisappear:aboutToDisappear函数在自定义组件析构销毁之前执行。不允许在aboutToDisappear函数中改变状态变量,特别是@Link变量的修改可能会导致应用程序行为不稳定。

场景提示

aboutToAppear:这个钩子主要处理一些父组件传递过来数据,然后当这个组件挂载时做一些动作。

aboutToDisappear:也是同理,但是这个主要也是做一些释放动作以及重置动作(例如定时器,以及状态重置等等)。

页面生命周期

  • onPageShow:页面每次显示时触发一次,包括路由过程、应用进入前台等场景。
  • onPageHide:页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景。
  • onBackPress:当用户点击返回按钮时触发。

场景提示

onPageShow:典型的例子就是路由传参的时候,目标页显示的时候触发并且拿到对应的数据做数据驱动渲染。

onPageHide:这里用的比较少,日常做一些不可见的资源回收或者定时器销毁,节省开销这些动作。

onBackPress:这个与onPageShow理念是差不多的但是还是看场景而定,比如说举一个场景,当用户返回时我也可能携带参数回到当前页从而修改当前页的数据,然后触发状态最后驱动UI刷新,这个也是MVVM这一套东西。

官方流程图解:

生命周期流程图.jpg

这里是官方的一些流程注解:

生命周期流程注解.jpg

个人白话注解(自定义组件的创建和渲染流程)

1、组件实例被ArkUI框架创建-----

2、按定义顺序初始化成员变量-----

3、定义了钩子就执行钩子函数-----

4、执行build方法渲染,如果有自定义组件则创建自定义组件实例再从1、2、3、执行(这里我个人觉得就体现了组件可重用的理念)最后展现所有的UI组件和自定义组件-----

个人白话注解(自定义组件重新渲染)

理解就是某个系统组件拥有事件也就是(事件句柄)当我们触发这个事件,比如说(点击事件Onclick),ArkUI框架可以识别到哪些状态变量与这个系统组件有关联,从而实现这个UI组件的更新,实现最小化更新。

修真结束

乌云卷着狂风,像是在宣告着这个世界是多么残酷,我盘膝而定,归纳最后的真气,我命由我不由天,了解完法则的运化过程,使我的法则之力使用更加的得心应手,这让我踏入异世界的修真区域有了更大的信心,我握紧拳头望着无边无际的黑云,心中的无畏让我变得更加强大。