• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 生命周期
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @mayaolll-->
5<!--Designer: @jiangdayuan-->
6<!--Tester: @lxl007-->
7<!--Adviser: @HelloCrease-->
8
9
10## 应用生命周期
11
12app.js中可以定义如下应用生命周期函数:
13
14| 属性      | 类型       | 描述     | 触发时机           |
15| --------- | ---------- | -------- | ------------------ |
16| onCreate  | () => void | 应用创建 | 当应用创建时调用。 |
17| onDestroy | () => void | 应用销毁 | 当应用退出时触发。 |
18
19## 页面生命周期
20
21在页面JS文件中可以定义如下页面生命周期函数:
22
23> **说明:** 请注意不要在生命周期函数中执行复杂耗时操作,以避免影响页面切换性能
24
25| 属性      | 类型       | 描述         | 触发时机                               |
26| --------- | ---------- | ------------ | -------------------------------------- |
27| onInit    | () => void | 页面初始化   | 页面数据初始化完成时触发,只触发一次。 |
28| onReady   | () => void | 页面创建完成 | 页面创建完成时触发,只触发一次。       |
29| onShow    | () => void | 页面显示     | 页面显示时触发。                       |
30| onHide    | () => void | 页面消失     | 页面消失时触发。                       |
31| onDestroy | () => void | 页面销毁     | 页面销毁时触发。                       |
32
33页面A的生命周期接口的调用顺序:
34
35- 打开页面A:onInit() -> onReady() -> onShow()
36- 在页面A打开页面B:onHide() -> onDestroy()
37- 从页面B返回页面A:onInit() -> onReady() -> onShow()
38- 退出页面A:onHide() -> onDestroy()
39- 页面隐藏到后台运行:onHide()
40- 页面从后台运行恢复到前台:onShow()
41
42![img](figures/lifecycle.png)