生命周期
生命周期是一些名称固定自动执行的函数。
页面生命周期
onLoad
在页面加载完成时执行,只会执行 1 次,常用于获取地址参数和网络请求onShow
在页面处于可见状态时执行,常用于动态更新数据或状态onReady
在页面初次渲染完成时执行,只会执行 1 次,常用于节点操作或动画交互等场景onHide
在页面处于不见状态时执行,常用于销毁长时间运行的任务,如定时器
应用生命周期
App函数的文档:https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html
开发工具中,关闭小程序,会显示场景值查找
App.js
1 App({ 2 // 小程序初始化完成时触发,全局只触发一次 3 onLaunch(options) { 4 // 小程序启动时会执行一次,常用于获取场景值或参数 5 console.log("onLaunch", options); 6 console.log("场景值", options.scene); 7 console.log("query参数", options.query); 8 }, 9 // 小程序启动或从后台进入前台显示时 10 onShow(options) { 11 console.log("options", options); 12 console.log("场景值", options.scene); 13 console.log("query参数", options.query); 14 }, 15 // 小程序从前台进入后台时,点击关闭按钮其实也会进入后台,微信会保留几分钟 16 onHide() { 17 console.log("onHide"); 18 } 19 })
小程序启动后,打印日志:
小程序更新机制
开发者在管理后台发布新版本的小程序之后,微信客户端会有若干个时机去检查本地缓存的小程序有没有新版本,并进行小程序的代码包更新。但如果用户本地有小程序的历史版本,此时打开的可能还是旧版本。
1. 启动时同步更新
在以下情况下,小程序启动时会同步更新代码包。同步更新会阻塞小程序的启动流程,影响小程序的启动耗时。
如果更新失败或超时,为了保障小程序的可用性,还是会使用本地版本打开。
定期检查发现版本更新
微信运行时,会定期检查最近使用的小程序是否有更新。如果有更新,下次小程序启动时会同步进行更新,更新到最新版本后再打开小程序,尽可能保证用户能够尽快使用小程序的最新版本。
用户长时间未使用小程序
用户长时间未使用小程序时,为保障小程序版本的实时性,会强制同步检查版本更新,更新到最新版本后再打开小程序。
若用户处于弱网环境、下载最新版本失败等情况下,仍会启动本地的较低版本。
2. 启动时异步更新
即使启动前未发现更新,小程序每次冷启动时,都会异步检查是否有更新版本。如果发现有新版本,将会异步下载新版本的代码包。但当次启动仍会使用客户端本地的旧版本代码,即新版本的小程序需要等下一次冷启动才会使用。
开发者手动触发更新
在启动时异步更新的情况下,如果开发者希望立刻进行版本更新,可以使用 wx.getUpdateManager API 进行处理。在有新版本时提示用户重启小程序更新新版本。
1 // app.js 2 App({ 3 onLaunch() { 4 // 小程序启动时,检查更新 5 this.checkUpdate() 6 }, 7 checkUpdate() { 8 // 获取版本更新管理器 9 const updateManager = wx.getUpdateManager() 10 11 // 检查更新结果 12 updateManager.onCheckForUpdate(function (res) { 13 // 是否有更新 14 console.log(res.hasUpdate) 15 }) 16 17 // 监听小程序有版本更新事件 18 updateManager.onUpdateReady(function () { 19 // 客户端主动触发下载(无需开发者触发下载,只需要做引导重启的提示即可) 20 wx.showModal({ 21 title: '更新提示', 22 content: '新版本已经准备好,是否重启应用?', 23 success: function (res) { 24 if (res.confirm) { 25 // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 26 updateManager.applyUpdate() 27 } 28 }, 29 }) 30 }) 31 32 updateManager.onUpdateFailed(function () { 33 // 新版本下载失败 34 console.log("新版本下载失败") 35 }) 36 }, 37 })
编译设置
编译然后从新进入小程序
标签:生命周期,console,log,04,程序,更新,版本,options From: https://www.cnblogs.com/wang1001/p/18141598