js-components-custom-lifecycle.md 2.5 KB
Newer Older
Z
zengyawen 已提交
1 2
# 生命周期定义

H
geshi  
HelloCrease 已提交
3
>  **说明:**
L
luoying_ace_admin 已提交
4
>
H
geshi  
HelloCrease 已提交
5
>  从API Version 5 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
Z
zengyawen 已提交
6 7


8
我们为自定义组件提供了一系列生命周期回调方法,便于开发者管理自定义组件的内部逻辑。生命周期主要包括:onInit,onAttached,onDetached,onLayoutReady,onDestroy,onShow和onHide。下面我们依次介绍一下各个生命周期回调的时机。
Z
zengyawen 已提交
9 10


G
gmy 已提交
11 12 13
| 属性          | 类型     | 描述               | 触发时机                                                     |
| ------------- | -------- | ------------------ | ------------------------------------------------------------ |
| onInit        | Function | 初始化自定义组件   | 自定义组件初始化生命周期回调,当自定义组件创建时,触发该回调,主要用于自定义组件中必须使用的数据初始化,该回调只会触发一次调用。 |
H
geshi  
HelloCrease 已提交
14
| onAttached    | Function | 自定义组件装载     | 自定义组件被创建后,加入到Page组件树时,触发该回调,该回调触发时,表示组件将被进行显示,该生命周期可用于初始化显示相关数据,通常用于加载图片资源、开始执行动画等场景。 |
G
gmy 已提交
15
| onLayoutReady | Function | 自定义组件布局完成 | 自定义组件插入Page组件树后,将会对自定义组件进行布局计算,调整其内容元素尺寸与位置,当布局计算结束后触发该回调。 |
L
luoying_ace_admin 已提交
16
| onDetached    | Function | 自定义组件卸载     | 自定义组件卸载时,触发该回调,常用于停止动画或异步逻辑停止执行的场景。 |
G
gmy 已提交
17 18 19
| onDestroy     | Function | 自定义组件销毁     | 自定义组件销毁时,触发该回调,常用于资源释放。               |
| onShow        | Function | 自定义组件Page显示 | 自定义组件所在Page显示后,触发该回调。                       |
| onHide        | Function | 自定义组件Page隐藏 | 自定义组件所在Page隐藏后,触发该回调。                       |
Z
zengyawen 已提交
20 21 22


## 示例
Z
zengyawen 已提交
23

H
geshi  
HelloCrease 已提交
24
```html
Z
zengyawen 已提交
25 26
<!-- comp.hml -->
<div class="item">  
L
luoying_ace_admin 已提交
27
   <text class="text-style">{{ value }}</text>  
Z
zengyawen 已提交
28 29 30
</div>
```

H
geshi  
HelloCrease 已提交
31
```js
Z
zengyawen 已提交
32 33 34 35 36 37 38 39 40 41 42 43
//comp.js
export default {
  data: {
    value: "组件创建"
  },
  onInit() {
    console.log("组件创建")
  },
  onAttached() {
    this.value = "组件挂载"
  },
  onDetached() {
L
luoying_ace_admin 已提交
44
    this.value = "组件卸载"
Z
zengyawen 已提交
45
  },
G
gmy 已提交
46
  onShow() {
Z
zengyawen 已提交
47 48
    console.log("Page显示")
  },
G
gmy 已提交
49
  onHide() {
Z
zengyawen 已提交
50 51 52 53
    console.log("Page隐藏")
  }
}
```