ArkTS的生命周期主要分为两大类:自定义组件生命周期和页面生命周期。
一、自定义组件
即使用@Component
装饰的UI单元,其生命周期相对简单,主要包括aboutToAppear
和aboutToDisappear
两个函数。这些函数在自定义组件的创建、显示和销毁过程中被调用,用于执行初始化、渲染和清理操作。
二、页面生命周期
主要针对被@Entry
装饰的自定义组件,即页面的入口组件。
页面生命周期函数包括:
onPageShow:页面每次显示时触发一次,包括路由过程、应用进入前台等场景。
onPageHide:页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景。
onBackPress:当用户点击返回按钮时触发。
页面生命周期还包含组件生命周期:
aboutToAppear:组件即将出现时回调该接口,具体时机为在创建自定义组件的新实例后,在执行其build()
函数之前执行。这通常用于初始化将要在UI中展示的数据或申请系统资源。
aboutToDisappear:在自定义组件析构销毁之前执行。这通常用于销毁在UI中展示的数据或释放不再申请的系统资源。注意,不允许在aboutToDisappear函数中改变状态变量,特别是@Link变量的修改可能会导致应用程序行为不稳定。
三、生命周期执行顺序
在ArkTS中,生命周期函数的执行顺序对于理解组件和页面的行为至关重要。以下是一个典型的页面从构建到展示再到销毁的生命周期顺序:
aboutToAppear:页面组件的实例被创建后,执行aboutToAppear
函数。
build:执行build()
函数,开始构建页面实例中的各个组件。
onPageShow:页面构建完成并展示时,执行onPageShow
函数。
页面消失时,首先执行onPageHide
函数,表示页面即将隐藏。随后执行aboutToDisappear
函数,表示自定义组件即将被销毁。
四、注意事项
只有被@Entry
装饰的组件(即页面入口组件)才能调用页面的生命周期函数(如onPageShow
、onPageHide
、onBackPress
)。
自定义组件的生命周期函数(aboutToAppear
、aboutToDisappear
)在组件的创建、显示和销毁过程中被调用,无论该组件是作为页面入口组件还是子组件。
在aboutToDisappear
函数中,应避免修改状态变量,特别是@Link
变量,因为这可能会导致应用程序行为不稳定。
通过理解ArkTS的生命周期,开发者可以更好地控制组件和页面的行为,实现更高效的UI渲染和更稳定的应用程序性能。