小程序生命周期
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