十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
组件的生命周期,指的是组件自身的一些函数,这些函数在特殊的时间点或遇到一些特殊的框架事件时被自动触发。

其中,最重要的生命周期是 created attached detached ,包含一个组件实例生命流程的最主要时间点。
生命周期方法可以直接定义在 Component 构造器的第一级参数中。
自小程序基础库版本 2.2.3 起,组件的的生命周期也可以在 lifetimes 字段内进行声明(这是推荐的方式,其优先级最高)。
代码示例:
Component({
  lifetimes: {
    attached: function() {
      // 在组件实例进入页面节点树时执行
    },
    detached: function() {
      // 在组件实例被从页面节点树移除时执行
    },
  },
  // 以下是旧式的定义方式,可以保持对 <2.2.3 版本基础库的兼容
  attached: function() {
    // 在组件实例进入页面节点树时执行
  },
  detached: function() {
    // 在组件实例被从页面节点树移除时执行
  },
  // ...
})
在 behaviors 中也可以编写生命周期方法,同时不会与其他 behaviors 中的同名生命周期相互覆盖。但要注意,如果一个组件多次直接或间接引用同一个 behavior ,这个 behavior 中的生命周期函数在一个执行时机内只会执行一次。
可用的全部生命周期如下表所示。
| 生命周期 | 参数 | 描述 | 最低版本 | 
|---|---|---|---|
| created | 无 | 在组件实例刚刚被创建时执行 | 1.6.3 | 
| attached | 无 | 在组件实例进入页面节点树时执行 | 1.6.3 | 
| ready | 无 | 在组件在视图层布局完成后执行 | 1.6.3 | 
| moved | 无 | 在组件实例被移动到节点树另一个位置时执行 | 1.6.3 | 
| detached | 无 | 在组件实例被从页面节点树移除时执行 | 1.6.3 | 
| error | Object Error | 每当组件方法抛出错误时执行 | 2.4.1 | 
还有一些特殊的生命周期,它们并非与组件有很强的关联,但有时组件需要获知,以便组件内部处理。这样的生命周期称为“组件所在页面的生命周期”,在 pageLifetimes 定义段中定义。其中可用的生命周期包括:
| 生命周期 | 参数 | 描述 | 最低版本 | 
|---|---|---|---|
| show | 无 | 组件所在的页面被展示时执行 | 2.2.3 | 
| hide | 无 | 组件所在的页面被隐藏时执行 | 2.2.3 | 
| resize | Object Size | 组件所在的页面尺寸变化时执行 | 2.4.0 | 
代码示例:
Component({
  pageLifetimes: {
    show: function() {
      // 页面被展示
    },
    hide: function() {
      // 页面被隐藏
    },
    resize: function(size) {
      // 页面尺寸变化
    }
  }
})