• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 生命周期定义<a name="ZH-CN_TOPIC_0000001209570719"></a>
2
3>![](../../public_sys-resources/icon-note.gif) **说明:**
4>从API Version 5 开始支持。
5
6我们为自定义组件提供了一系列生命周期回调方法,便于开发者管理自定义组件的内部逻辑。生命周期主要包括:onInit,onAttached,onDetached,onLayoutReady,onDestroy,onPageShow和onPageHide。下面我们依次介绍一下各个生命周期回调的时机。
7
8<a name="zh-cn_topic_0000001127125084_t7208da80646145cb86b25df20f52a5d4"></a>
9<table><thead align="left"><tr id="zh-cn_topic_0000001127125084_r4bc39237158f4199b86d18d0784b005d"><th class="cellrowborder" valign="top" width="14.441444144414442%" id="mcps1.1.5.1.1"><p id="zh-cn_topic_0000001127125084_aa7d8254f7b0f495e8a38fc76d3508fc4"><a name="zh-cn_topic_0000001127125084_aa7d8254f7b0f495e8a38fc76d3508fc4"></a><a name="zh-cn_topic_0000001127125084_aa7d8254f7b0f495e8a38fc76d3508fc4"></a>属性</p>
10</th>
11<th class="cellrowborder" valign="top" width="10.121012101210122%" id="mcps1.1.5.1.2"><p id="zh-cn_topic_0000001127125084_a037ba3feced74d36ae28ca2414da39a2"><a name="zh-cn_topic_0000001127125084_a037ba3feced74d36ae28ca2414da39a2"></a><a name="zh-cn_topic_0000001127125084_a037ba3feced74d36ae28ca2414da39a2"></a>类型</p>
12</th>
13<th class="cellrowborder" valign="top" width="18.751875187518753%" id="mcps1.1.5.1.3"><p id="zh-cn_topic_0000001127125084_aac19d68c24f6444095fd09939256ea10"><a name="zh-cn_topic_0000001127125084_aac19d68c24f6444095fd09939256ea10"></a><a name="zh-cn_topic_0000001127125084_aac19d68c24f6444095fd09939256ea10"></a>描述</p>
14</th>
15<th class="cellrowborder" valign="top" width="56.685668566856684%" id="mcps1.1.5.1.4"><p id="zh-cn_topic_0000001127125084_a80a1ef722e3f4008961e97ea3db877ef"><a name="zh-cn_topic_0000001127125084_a80a1ef722e3f4008961e97ea3db877ef"></a><a name="zh-cn_topic_0000001127125084_a80a1ef722e3f4008961e97ea3db877ef"></a>触发时机</p>
16</th>
17</tr>
18</thead>
19<tbody><tr id="zh-cn_topic_0000001127125084_rb52da1ffb529417c9f0290d1f122a87e"><td class="cellrowborder" valign="top" width="14.441444144414442%" headers="mcps1.1.5.1.1 "><p id="zh-cn_topic_0000001127125084_acd1fd04acf1f4b789a178ecc66e8c27c"><a name="zh-cn_topic_0000001127125084_acd1fd04acf1f4b789a178ecc66e8c27c"></a><a name="zh-cn_topic_0000001127125084_acd1fd04acf1f4b789a178ecc66e8c27c"></a>onInit</p>
20</td>
21<td class="cellrowborder" valign="top" width="10.121012101210122%" headers="mcps1.1.5.1.2 "><p id="zh-cn_topic_0000001127125084_a86ee0c2879d744c9a7c81908ddc5be08"><a name="zh-cn_topic_0000001127125084_a86ee0c2879d744c9a7c81908ddc5be08"></a><a name="zh-cn_topic_0000001127125084_a86ee0c2879d744c9a7c81908ddc5be08"></a>Function</p>
22</td>
23<td class="cellrowborder" valign="top" width="18.751875187518753%" headers="mcps1.1.5.1.3 "><p id="zh-cn_topic_0000001127125084_a50617b80389e45b58dd015e4db4ac094"><a name="zh-cn_topic_0000001127125084_a50617b80389e45b58dd015e4db4ac094"></a><a name="zh-cn_topic_0000001127125084_a50617b80389e45b58dd015e4db4ac094"></a>初始化自定义组件</p>
24</td>
25<td class="cellrowborder" valign="top" width="56.685668566856684%" headers="mcps1.1.5.1.4 "><p id="zh-cn_topic_0000001127125084_p1395313418212"><a name="zh-cn_topic_0000001127125084_p1395313418212"></a><a name="zh-cn_topic_0000001127125084_p1395313418212"></a>自定义组件初始化生命周期回调,当自定义组件创建时,触发该回调,主要用于自定义组件中必须使用的数据初始化,该回调只会触发一次调用。</p>
26</td>
27</tr>
28<tr id="zh-cn_topic_0000001127125084_r57dd28dbf8a243cdad002d8599eda15f"><td class="cellrowborder" valign="top" width="14.441444144414442%" headers="mcps1.1.5.1.1 "><p id="zh-cn_topic_0000001127125084_af6a0fe8473a54e71be833ea3c4135328"><a name="zh-cn_topic_0000001127125084_af6a0fe8473a54e71be833ea3c4135328"></a><a name="zh-cn_topic_0000001127125084_af6a0fe8473a54e71be833ea3c4135328"></a>onAttached</p>
29</td>
30<td class="cellrowborder" valign="top" width="10.121012101210122%" headers="mcps1.1.5.1.2 "><p id="zh-cn_topic_0000001127125084_a5d96ae01ba73452e9aef97a5547c5df9"><a name="zh-cn_topic_0000001127125084_a5d96ae01ba73452e9aef97a5547c5df9"></a><a name="zh-cn_topic_0000001127125084_a5d96ae01ba73452e9aef97a5547c5df9"></a>Function</p>
31</td>
32<td class="cellrowborder" valign="top" width="18.751875187518753%" headers="mcps1.1.5.1.3 "><p id="zh-cn_topic_0000001127125084_aa80d3cebd7f64e97ac348b8f034efc04"><a name="zh-cn_topic_0000001127125084_aa80d3cebd7f64e97ac348b8f034efc04"></a><a name="zh-cn_topic_0000001127125084_aa80d3cebd7f64e97ac348b8f034efc04"></a>自定义组件装载</p>
33</td>
34<td class="cellrowborder" valign="top" width="56.685668566856684%" headers="mcps1.1.5.1.4 "><p id="zh-cn_topic_0000001127125084_a2e00e7dee8164661b4244c4a34ae9b2c"><a name="zh-cn_topic_0000001127125084_a2e00e7dee8164661b4244c4a34ae9b2c"></a><a name="zh-cn_topic_0000001127125084_a2e00e7dee8164661b4244c4a34ae9b2c"></a>自定义组件被创建后,加入到Page组件树时,触发该回调,该回调触发时,表示组件将被进行显示,该声明周期可用于初始化显示相关数据,通常用于加载图片资源、开始执行动画等场景。。</p>
35</td>
36</tr>
37<tr id="zh-cn_topic_0000001127125084_r1dd8a5bfd50043eeb2fff708e728a9fa"><td class="cellrowborder" valign="top" width="14.441444144414442%" headers="mcps1.1.5.1.1 "><p id="zh-cn_topic_0000001127125084_ae46609ef4ad2444fb4befc1ac552eb88"><a name="zh-cn_topic_0000001127125084_ae46609ef4ad2444fb4befc1ac552eb88"></a><a name="zh-cn_topic_0000001127125084_ae46609ef4ad2444fb4befc1ac552eb88"></a>onLayoutReady</p>
38</td>
39<td class="cellrowborder" valign="top" width="10.121012101210122%" headers="mcps1.1.5.1.2 "><p id="zh-cn_topic_0000001127125084_a4b3c794964514f988757cd639964b7a8"><a name="zh-cn_topic_0000001127125084_a4b3c794964514f988757cd639964b7a8"></a><a name="zh-cn_topic_0000001127125084_a4b3c794964514f988757cd639964b7a8"></a>Function</p>
40</td>
41<td class="cellrowborder" valign="top" width="18.751875187518753%" headers="mcps1.1.5.1.3 "><p id="zh-cn_topic_0000001127125084_a147a1ab39d2043f2a22c62b3483335b6"><a name="zh-cn_topic_0000001127125084_a147a1ab39d2043f2a22c62b3483335b6"></a><a name="zh-cn_topic_0000001127125084_a147a1ab39d2043f2a22c62b3483335b6"></a>自定义组件布局完成</p>
42</td>
43<td class="cellrowborder" valign="top" width="56.685668566856684%" headers="mcps1.1.5.1.4 "><p id="zh-cn_topic_0000001127125084_a23c4cbd18ad24bd8a496dbc487dd5400"><a name="zh-cn_topic_0000001127125084_a23c4cbd18ad24bd8a496dbc487dd5400"></a><a name="zh-cn_topic_0000001127125084_a23c4cbd18ad24bd8a496dbc487dd5400"></a>自定义组件插入Page组件树后,将会对自定义组件进行布局计算,调整其内容元素尺寸与位置,当布局计算结束后触发该回调。</p>
44</td>
45</tr>
46<tr id="zh-cn_topic_0000001127125084_r4247056b80864bb7ab5678341dc8c29a"><td class="cellrowborder" valign="top" width="14.441444144414442%" headers="mcps1.1.5.1.1 "><p id="zh-cn_topic_0000001127125084_a973949fa33de41ca9a53c43e98b47f63"><a name="zh-cn_topic_0000001127125084_a973949fa33de41ca9a53c43e98b47f63"></a><a name="zh-cn_topic_0000001127125084_a973949fa33de41ca9a53c43e98b47f63"></a>onDetached</p>
47</td>
48<td class="cellrowborder" valign="top" width="10.121012101210122%" headers="mcps1.1.5.1.2 "><p id="zh-cn_topic_0000001127125084_a245d96bb028641d492503489b54c4c2c"><a name="zh-cn_topic_0000001127125084_a245d96bb028641d492503489b54c4c2c"></a><a name="zh-cn_topic_0000001127125084_a245d96bb028641d492503489b54c4c2c"></a>Function</p>
49</td>
50<td class="cellrowborder" valign="top" width="18.751875187518753%" headers="mcps1.1.5.1.3 "><p id="zh-cn_topic_0000001127125084_a169e08a844b2452d85acfaca01ea20ee"><a name="zh-cn_topic_0000001127125084_a169e08a844b2452d85acfaca01ea20ee"></a><a name="zh-cn_topic_0000001127125084_a169e08a844b2452d85acfaca01ea20ee"></a>自定义组件摘除</p>
51</td>
52<td class="cellrowborder" valign="top" width="56.685668566856684%" headers="mcps1.1.5.1.4 "><p id="zh-cn_topic_0000001127125084_ae54d3a1f653c495ba8950e82c0fb3db4"><a name="zh-cn_topic_0000001127125084_ae54d3a1f653c495ba8950e82c0fb3db4"></a><a name="zh-cn_topic_0000001127125084_ae54d3a1f653c495ba8950e82c0fb3db4"></a>自定义组件摘除时,触发该回调,常用于停止动画或异步逻辑停止执行的场景。</p>
53</td>
54</tr>
55<tr id="zh-cn_topic_0000001127125084_ra205abdcebf94a5583cdbd422211dd4b"><td class="cellrowborder" valign="top" width="14.441444144414442%" headers="mcps1.1.5.1.1 "><p id="zh-cn_topic_0000001127125084_aeb5a3893eb974dd88a762adc8077ed54"><a name="zh-cn_topic_0000001127125084_aeb5a3893eb974dd88a762adc8077ed54"></a><a name="zh-cn_topic_0000001127125084_aeb5a3893eb974dd88a762adc8077ed54"></a>onDestroy</p>
56</td>
57<td class="cellrowborder" valign="top" width="10.121012101210122%" headers="mcps1.1.5.1.2 "><p id="zh-cn_topic_0000001127125084_a3b98923b60554564b67d28a3ac2bb562"><a name="zh-cn_topic_0000001127125084_a3b98923b60554564b67d28a3ac2bb562"></a><a name="zh-cn_topic_0000001127125084_a3b98923b60554564b67d28a3ac2bb562"></a>Function</p>
58</td>
59<td class="cellrowborder" valign="top" width="18.751875187518753%" headers="mcps1.1.5.1.3 "><p id="zh-cn_topic_0000001127125084_a1f2cd15604434b1f8c1ad075db3ec76d"><a name="zh-cn_topic_0000001127125084_a1f2cd15604434b1f8c1ad075db3ec76d"></a><a name="zh-cn_topic_0000001127125084_a1f2cd15604434b1f8c1ad075db3ec76d"></a>自定义组件销毁</p>
60</td>
61<td class="cellrowborder" valign="top" width="56.685668566856684%" headers="mcps1.1.5.1.4 "><p id="zh-cn_topic_0000001127125084_aab6fb684fd454b41a6f701628f9c2307"><a name="zh-cn_topic_0000001127125084_aab6fb684fd454b41a6f701628f9c2307"></a><a name="zh-cn_topic_0000001127125084_aab6fb684fd454b41a6f701628f9c2307"></a>自定义组件销毁时,触发该回调,常用于资源释放。</p>
62</td>
63</tr>
64<tr id="zh-cn_topic_0000001127125084_row153141111450"><td class="cellrowborder" valign="top" width="14.441444144414442%" headers="mcps1.1.5.1.1 "><p id="zh-cn_topic_0000001127125084_p031461114513"><a name="zh-cn_topic_0000001127125084_p031461114513"></a><a name="zh-cn_topic_0000001127125084_p031461114513"></a>onPageShow</p>
65</td>
66<td class="cellrowborder" valign="top" width="10.121012101210122%" headers="mcps1.1.5.1.2 "><p id="zh-cn_topic_0000001127125084_p1031441116514"><a name="zh-cn_topic_0000001127125084_p1031441116514"></a><a name="zh-cn_topic_0000001127125084_p1031441116514"></a>Function</p>
67</td>
68<td class="cellrowborder" valign="top" width="18.751875187518753%" headers="mcps1.1.5.1.3 "><p id="zh-cn_topic_0000001127125084_p3315111550"><a name="zh-cn_topic_0000001127125084_p3315111550"></a><a name="zh-cn_topic_0000001127125084_p3315111550"></a>自定义组件Page显示</p>
69</td>
70<td class="cellrowborder" valign="top" width="56.685668566856684%" headers="mcps1.1.5.1.4 "><p id="zh-cn_topic_0000001127125084_p831518111558"><a name="zh-cn_topic_0000001127125084_p831518111558"></a><a name="zh-cn_topic_0000001127125084_p831518111558"></a>自定义组件所在Page显示后,触发该回调。</p>
71</td>
72</tr>
73<tr id="zh-cn_topic_0000001127125084_row153471627274"><td class="cellrowborder" valign="top" width="14.441444144414442%" headers="mcps1.1.5.1.1 "><p id="zh-cn_topic_0000001127125084_p13481927174"><a name="zh-cn_topic_0000001127125084_p13481927174"></a><a name="zh-cn_topic_0000001127125084_p13481927174"></a>onPageHide</p>
74</td>
75<td class="cellrowborder" valign="top" width="10.121012101210122%" headers="mcps1.1.5.1.2 "><p id="zh-cn_topic_0000001127125084_p43489271277"><a name="zh-cn_topic_0000001127125084_p43489271277"></a><a name="zh-cn_topic_0000001127125084_p43489271277"></a>Function</p>
76</td>
77<td class="cellrowborder" valign="top" width="18.751875187518753%" headers="mcps1.1.5.1.3 "><p id="zh-cn_topic_0000001127125084_p434816271172"><a name="zh-cn_topic_0000001127125084_p434816271172"></a><a name="zh-cn_topic_0000001127125084_p434816271172"></a>自定义组件Page隐藏</p>
78</td>
79<td class="cellrowborder" valign="top" width="56.685668566856684%" headers="mcps1.1.5.1.4 "><p id="zh-cn_topic_0000001127125084_p73481627873"><a name="zh-cn_topic_0000001127125084_p73481627873"></a><a name="zh-cn_topic_0000001127125084_p73481627873"></a>自定义组件所在Page隐藏后,触发该回调。</p>
80</td>
81</tr>
82</tbody>
83</table>
84
85## 示例<a name="zh-cn_topic_0000001127125084_section14938111864313"></a>
86
87```
88<!-- comp.hml -->
89<div class="item">
90   <text class="text-style">{{value}}</text>
91</div>
92```
93
94```
95//comp.js
96export default {
97  data: {
98    value: "组件创建"
99  },
100  onInit() {
101    console.log("组件创建")
102  },
103  onAttached() {
104    this.value = "组件挂载"
105  },
106  onDetached() {
107    this.value = ""
108  },
109  onPageShow() {
110    console.log("Page显示")
111  },
112  onPageHide() {
113    console.log("Page隐藏")
114  }
115}
116```
117
118