微信小程序的生命周期分为三个部分:应用级生命周期、页面级生命周期、组件的生命周期。
1.应用级生命周期:
- onLaunch: 初始化小程序完成时触发,且全局只触发一次;
- onShow: 小程序初始化完成(启动)或从后台切换到前台显示时触发;
- onHide: 小程序从前台切换到后台隐藏时触发(如切换到其他app中);
- onError: 小程序发生脚本错误或者api调用失败的时候,会触发 onError 并带上错误信息;
- onPageNotFound:小程序要打开的页面不存在的时候触发;
- onUnhandledRejection:小程序有未处理的 Promise 拒绝的时候触发;
- onThemeChange:系统切换主题的时候触发。
2.自定义组件生命周期:
- created()组件实例刚被创建时
- attached()组件实例进入页面节点树时
- ready()视图层布局完成后(渲染完成后)
- moved()组件实例被移动到节点树另一个位置
- detached()从页面节点树移除
- error()抛出错误时
最主要为以下三个方法:
- created():此时还不能调用setData(),只用于给this挂载一些自定义属性
- attached(): this.data已初始化完毕,初始化已完成,可以里面发送请求
- detached():组件离开节点树,清理性质工作,退出页面时
声明方式:(新的声明方法在lifetimes里面声明)
lifetimes:{
created(){...}
attached(){...}
}
3.页面级生命周期:
- onLoad:进入页面加载时触发,且只执行一次;
- onShow:页面展示时候,也就是加载完成后、后台切到前台或重新进入页面时触发,可以执行多次;
- onReady:页面首次渲染完成的时候触发,且只执行一次;
- onHide:页面从前台切到后台或进入其他页面触发;
- onUnload:页面卸载时触发;
pageLifetimes:{
show(){...},
hide(){...},
resize(){...}
}