小程序生命周期分为 3 类
- 应用生命周期 App()
- 页面生命周期 Page()
- 组件生命周期 Component()
App应用程序入口中的生命回调函数
在此入口中可以定义全局变量globalData
- onLaunch()第一次打开小程序的时候初始化一次(就就触发一次)
- onShow() 启动小程序或切换前台时触发
- onHide() 小程序切后台时触发
代码示例
App({
globalData:{
showTime:0,
hideTime:0,
},
onLaunch(){
console.log('A1',"onLaunch");
},
onShow(){
this.showTime = new Date()
console.log('A1',"onShow");
},
onHide(){
this.hideTime = new Date();
console.log('A1',"onHide",this.hideTime-this.showTime,this);
},
})
页面page入口中的生命回调函数
-
onload()监听页面加载页面在初次打开的时候触发一次,适合页面数据请求。
-
onUnload()监听页面卸载普通页跳转到 tabBar 页的时候触发,普通页会被卸载。
-
onShow()监听页面显示应用切后台,或者跳转到普通页。
-
onReady() 当页面初次渲染完后,调用该生命周期函数。当onReady渲染完后,数据逻辑层跟视图层就可以进行交互了
-
onHide() 监听页面隐藏页面每次显示都触发,如购物车每次显示都希望用最新的数据。
Page({
data:{},
// onload()监听页面加载
onLoad:function(){
console.log('P1','监听页面加载');
},
onUnload:function(){
console.log('p1','监听页面卸载');
},
onShow:function(){
console.log('p1','监听页面显示');
},
onHide:function(){
console.log('p1','监听页面隐藏');
}
})
tabar页是卸载不了的,只能隐藏,只有普通页面才能卸载
在页面生命周期中可以通过getApp()获取APP实例
Page({
data:{},
// onload()监听页面加载
onLoad:function(){
console.log('P1','监听页面加载',getApp());
},
onUnload:function(){
console.log('p1','监听页面卸载');
},
onShow:function(){
console.log('p1','监听页面显示');
},
onHide:function(){
console.log('p1','监听页面隐藏');
}
})
假设我们用uni-app进行开发,通常组件生命都不用到