25. 组件的生命周期

2023-08-19 16:09:53发布
47
Component({

  lifetimes: {
    // 在组件实例刚刚被创建时执行
    created() {
      console.log('组件:create')
    },
    // 在组件实例进入页面节点树时执行
    attached() {
      console.log('组件:attached')
    },
    // 在组件在视图层布局完成后执行
    ready() {
      console.log('组件:ready')
    },
    // 在组件实例被移动到节点树另一个位置时执行
    moved() {
      console.log('组件:moved')
    },
    // 在组件实例被从页面节点树移除时执行
    detached() {
      console.log('组件:detached')
    },
    // 每当组件方法抛出错误时执行
    error() {
      console.log('组件:error')
    }
  },


  pageLifetimes: {
    // 组件所在的页面被展示时执行
    show() {
      console.log('组件:show')
    },
    // 组件所在的页面被隐藏时执行
    hide() {
      console.log('组件:hide')
    },
    // 组件所在的页面尺寸变化时执行
    resize(size) {
      console.log('组件:resize')
    },
    // 组件所在页面路由动画完成时执行
    routeDone() {
      console.log('组件:routeDone')
    }
  }
})

其中lifetimes是组件的生命周期,pageLifetimes是“组件所在页面的生命周期

tips :在旧版本中,组件的生命周期是可以放到外面的,不用写在lifetimes里面,如:

Component({
  // 在组件实例刚刚被创建时执行
  created() {
    console.log('组件:create')
  },
  // 在组件实例进入页面节点树时执行
  attached() {
    console.log('组件:attached')
  },
  // 在组件在视图层布局完成后执行
  ready() {
    console.log('组件:ready')
  },
  // 在组件实例被移动到节点树另一个位置时执行
  moved() {
    console.log('组件:moved')
  },
  // 在组件实例被从页面节点树移除时执行
  detached() {
    console.log('组件:detached')
  },
  // 每当组件方法抛出错误时执行
  error() {
    console.log('组件:error')
  }
})


app、页面、组件的生命周期的执行顺序