小程序开放平台

文档中心
起步
目录
配置小程序
小程序框架
小程序运行时
自定义组件
自定义组件
组件模板和样式
组件构造器
组件间通信与事件
组件生命周期
组件行为
数据监听器
自定义组件扩展
开发第三方自定义组件
基础能力
开放能力
性能优化
转发
事件回调
基础库
调试
数据分析
服务端调试

组件生命周期

开发
>
指南
>
自定义组件
>
组件生命周期
>
更新时间:2024-11-13 19:05:23

组件的生命周期,指的是组件自身的一些函数,这些函数在特殊的时间点或遇到一些特殊的框架事件时被自动触发。

其中,最重要的生命周期是

created
attached
detached
,包含一个组件实例生命流程的最主要时间点。

  • 组件实例刚刚被创建好时,
    created
    生命周期被触发。此时,组件数据
    this.data
    就是在
    Component
    构造器中定义的数据
    data
    此时还不能调用
    setData
    。 通常情况下,这个生命周期只应该用于给组件
    this
    添加一些自定义属性字段。
  • 在组件完全初始化完毕、进入页面节点树后,
    attached
    生命周期被触发。此时,
    this.data
    已被初始化为组件的当前值。这个生命周期很有用,绝大多数初始化工作可以在这个时机进行。
  • 在组件离开页面节点树后,
    detached
    生命周期被触发。退出一个页面时,如果组件还在页面节点树中,则
    detached
    会被触发。

定义生命周期方法

生命周期方法可以直接定义在 Component 构造器的第一级参数中。也可以在 lifetimes 字段内进行声明(这是推荐的方式,其优先级最高)。

Component({
  lifetimes: {
    attached: function() {
      // 在组件实例进入页面节点树时执行
    },
    detached: function() {
      // 在组件实例被从页面节点树移除时执行
    },
  },
  // 以下是旧式的定义方式,可以保持对 <2.2.3 版本基础库的兼容
  attached: function() {
    // 在组件实例进入页面节点树时执行
  },
  detached: function() {
    // 在组件实例被从页面节点树移除时执行
  },
  // ...
})

behaviors
中也可以编写生命周期方法,同时不会与其他
behaviors
中的同名生命周期相互覆盖。但要注意,如果一个组件多次直接或间接引用同一个
behavior
,这个
behavior
中的生命周期函数在一个执行时机内只会执行一次。

可用的全部生命周期如下表所示。

生命周期
参数
描述
created在组件实例刚刚被创建时执行
attached在组件实例进入页面节点树时执行
ready在组件在视图层布局完成后执行
detached在组件实例被从页面节点树移除时执行
errorObject Error每当组件方法抛出错误时执行
该文档是否对您有帮助?