App对象的生命周期:
1)onLaunch: 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
①可以发起ajax请求,获取全局数据
②获取用户信息
③模拟启动小程序出错
2)onShow: 当小程序启动 或 切前台 (很少用)
3)onHide: 当小程序切后台 (很少用)
4)onError: 当小程序出错会就调用onError
Page对象的生命周期:
1)onLoad:页面加载时执行,只执行一次
2)onShow:页面展示时执行,执行多次
3)onReady:页面初次渲染时执行,只执行一次
4)onHide:页面从前台进入后台时执行
5)onUnload:页面卸载时执行
多个页面切换时,状态需要改变,使用onShow。
多个页面切换时,状态不需要改变,使用onLoad或onReady。
页面中如果有定时器,清除定时器,使用onUnload。
component组件的生命周期:
1)created:
①组件实例刚刚被创建好
② 可以访问data中的数据
③不可以更新状态机,不能调用setData
④ 可以给组件添加自定义属性
2)attached:当组件挂载到页面上时会调用
3)detached:当组件在页面上被卸载时会调用
推荐在lifetimes{}字段中进行声明
组件所在页面的生命周期:
pageLifetimes:{
show(){ // 组件所在页面出现后
console.log("pageLifetimes show");
},
hide(){ // 组件所在页面隐藏时
console.log("pageLifetimes hide");
},
resize(){
console.log("pageLifetimes resize");
}
}
总结小程序的一辈子:
打开小程序:
(App)onLaunch --> (App)onShow --> (Pages)onLoad --> (Pages)onShow --> (pages)onReady
进入下一个页面:
(Pages)onHide --> (Next)onLoad --> (Next)onShow --> (Next)onReady
返回上一个页面:
(curr)onUnload --> (pre)onShow
离开小程序:
(App)onHide
再次进入:
小程序未销毁 --> (App)onShow(执行上面的顺序),小程序被销毁,(App)onLaunch重新开始执行.