小程序生命周期
2018-12-10 本文已影响0人
山中经
全局生命周期:
周期 | 触发时间 | 参数 | 执行顺序 |
---|---|---|---|
onLaunch(option){} | //初始化完成(全局只触发一次) | 带参数 | 1 |
onShow(option){} | //启动或从进入前台时触发,每次都会触发 | 带参数 | 2 |
onHide(){} | // 小程序进入后台时触发 |
参数: 路径,参数,场景值,来源及来源参数。。。
page生命周期:
周期 | 说明 | 触发时间 | 执行顺序 | 参数 |
---|---|---|---|---|
onLoad(option){} | 页面加载 (触发1次) | 初始化的时候触发、被销毁后进入触发 | 1 | 带参数 |
onShow (){} | 页面显示 | 进入时触发、由下一页返回当前页的时候 | 2 | |
onReady(){} | 页面初次渲染完成(触发1次) | 初次渲染完成时触发、被销毁后进入页面渲染完成时触发 | 3 | |
onHide(){} | 页面隐藏 | 进入下一页 | ||
onUnload(){} | 页面卸载(被销毁) | 返回上一页的时候、跳转tabbar页的时候 | ||
onPullDownRefresh(){} | 下拉事件 | |||
onReachBottom(){} | 上拉触底事件 | |||
onPageScroll(){} | 页面滚动触发事 | |||
onShareAppMessage(){} | 右上角转发事件 |
路由方式 | api | 跳转前页面 | 跳转后页面 |
---|---|---|---|
初始化 | 首页 | 目的页面的onLoad, onShow | |
打开新页面 | wx.navigateTo | 当前页的 onHide | 目的页面的 onLoad, onShow,onReady |
页面重定向 | wx.redirectTo | 当前页的 onUnload | 目的页面的onLoad, onShow,onReady |
页面返回 | wx.navigateBack | 当前页的 onUnload | 目的页面的 onShow |
重启动 | wx.reLaunch | 页面栈的 onUnload | 目的页面的onLoad, onShow ,onReady |
Tab 切换 | wx.switchTab | 页面栈里出tabber外的其他页面onUnload | 目的页面的onLoad(没打开的情况)、 onShow |
tabbarA页 -- tabbarB页(没打开过): 页面栈里出tabber外的其他页面onUnload,tabA的onHide,tabB的 onLoad, onShow,onReady
abbarA页 -- tabbarB页(打开过):页面栈里出tabber外的其他页面onUnload,tabA的onHide,tabB的 onShow
page页 -- tabbar页:页面栈里出tabber外的其他页面onUnload,tab页的 onLoad, onShow,onReady
- 更新小程序
- 禁止页面滑动
// 在加载时更新小程序
//App.js里的 onLaunch 周期里启用
renewalcode: function() {
var e = wx.getUpdateManager();
e.onCheckForUpdate(function(n) {
// console.log(n.hasUpdate);
})
e.onUpdateReady(function() {
wx.showModal({
title: "更新提示",
content: "新版本已经准备好,是否重启应用?",
success: function(n) {
n.confirm && e.applyUpdate()
}
})
})
e.onUpdateFailed(function() {});
}
// 禁止页面滑动(页面有大于一页的数据候也不会滑动)
在page.json 增加 "disableScroll": true