文档:
组件生命周期 | 微信开放文档

组件的生命周期

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

  • 在组件实例刚被创建好的时候,created函数被触发,此时还不能使用setData方法。通常情况下,这个生命周期只应该用于给组件this添加一些自定义属性字段。
  • 在组件完全初始化完毕、进入页面节点树后, attached生命周期被触发。此时,this.data已被初始化为组件的当前值。这个生命周期很有用,绝大多数初始化工作可以在这个时机进行。
  • 在组件离开页面节点树后, detached生命周期被触发。退出一个页面时,如果组件还在页面节点树中,则detached会被触发。
    1. Component({
    2. lifetimes: {
    3. attached: function() {
    4. // 在组件实例进入页面节点树时执行
    5. },
    6. detached: function() {
    7. // 在组件实例被从页面节点树移除时执行
    8. },
    9. },
    10. // 以下是旧式的定义方式,可以保持对 <2.2.3 版本基础库的兼容
    11. attached: function() {
    12. // 在组件实例进入页面节点树时执行
    13. },
    14. detached: function() {
    15. // 在组件实例被从页面节点树移除时执行
    16. },
    17. // ...
    18. })

组件所在页面的生命周期

有时,自定义组件的行为依赖于页面状态的变化,此时就需要用到组件所在页面的生命周期。
image.png

需要放到pageLifetimes对象中:

  1. Component({
  2. pageLifetimes: {
  3. show: function() {
  4. // 页面被展示
  5. },
  6. hide: function() {
  7. // 页面被隐藏
  8. },
  9. resize: function(size) {
  10. // 页面尺寸变化
  11. }
  12. }
  13. })