当前位置:   article > 正文

微信小程序 ---- 生命周期_微信小程序 lifetimes

微信小程序 lifetimes

目录

生命周期

1. 小程序运行机制

2. 小程序更新机制

3. 生命周期介绍

4. 应用级别生命周期

5. 页面级别生命周期

6. 生命周期两个细节补充说明

7. 组件生命周期

总结 


生命周期

1. 小程序运行机制

 

 

冷启动与热启动:

小程序启动可以分为两种情况,一种是冷启动,一种是热启动

冷启动:如果用户首次打开,或小程序销毁后被用户再次打开,此时小程序需要重新加载启动

热启动:如果用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时小程序并未被销毁,只是从后台状态进入前台状态

前台 以及 后台状态:

小程序启动后,界面被展示给用户,此时小程序处于「前台」状态。

当用户「关闭」小程序时,小程序并没有真正被关闭,而是进入了「后台」状态,当用户再次进入微信并打开小程序,小程序又会重新进入「前台」状态

切后台的方式包括但不限于以下几种:

  • 点击右上角胶囊按钮离开小程序
  • 安卓点击返回键离开小程序
  • 屏幕左侧右滑离开小程序

 

挂起:

小程序进入「后台」状态一段时间后(5 秒),微信停止小程序 JS 线程执行,小程序进入「挂起」状态,当开发者使用了后台播放音乐、后台地理位置等能力时,小程序可以在后台持续运行,不会进入到挂起状态

销毁:

如果用户很久没有使用小程序,或者系统资源紧张,小程序会被销毁,即完全终止运行。

当小程序进入后台并被「挂起」后,如果很长时间(目前是 30 分钟)都未再次进入前台,小程序会被销毁

当小程序占用系统资源过高,可能会被系统销毁或被微信客户端主动回收。

2. 小程序更新机制

在访问小程序时,微信会将小程序代码包缓存到本地。

开发者在发布了新的小程序版本以后,微信客户端会检查本地缓存的小程序有没有新版本,并进行小程序代码包的更新。

小程序的更新机制有两种:启动时同步更新 和 启动时异步更新

启动时异步更新

启动时同步更新:微信运行时,会定期检查最近使用的小程序是否有更新。如果有更新,下次小程序启动时会同步进行更新,更新到最新版本后再打开小程序。如果 用户长时间未使用小程序时,会强制同步检查版本更新

启动时异步更新

启动时异步更新:在启动前没有发现更新,小程序每次 冷启动 时,都会异步检查是否有更新版本。如果发现有新版本,将会异步下载新版本的代码包,将新版本的小程序在下一次冷启动进行使用,当前访问使用的依然是本地的旧版本代码

在启动时异步更新的情况下,如果开发者希望立刻进行版本更新,可以使用 wx.getUpdateManager API 进行处理。在有新版本时提示用户重启小程序更新新版本。

 
  1. App({
  2. /**
  3. * 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
  4. */
  5. onLaunch: function () {
  6. const updateManager = wx.getUpdateManager()
  7. updateManager.onCheckForUpdate(function (res) {
  8. // 请求完新版本信息的回调
  9. console.log(res.hasUpdate)
  10. })
  11. updateManager.onUpdateReady(function () {
  12. wx.showModal({
  13. title: '更新提示',
  14. content: '新版本已经准备好,是否重启应用?',
  15. success(res) {
  16. if (res.confirm) {
  17. // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
  18. updateManager.applyUpdate()
  19. }
  20. }
  21. })
  22. })
  23. updateManager.onUpdateFailed(function () {
  24. // 新版本下载失败
  25. })
  26. }
  27. })

落地代码:

 
  1. App({
  2. // onLaunch 是小程序的钩子函数,这个钩子函数在冷启动时肯定会执行到
  3. // 当小程序冷启动时,会自动微信后台请求新版本的信息,如果有新版本,会立即进行下载
  4. onLaunch () {
  5. // 使用 wx.getUpdateManager 方法监听下载的状态
  6. const updateManager = wx.getUpdateManager()
  7. // 当下载完成新版本以后,会触发 onUpdateReady 回调函数
  8. updateManager.onUpdateReady(function () {
  9. // 在回调函数中给用户提示,
  10. wx.showModal({
  11. title: '更新提示',
  12. content: '新版本已经准备好,是否重启应用?',
  13. success(res) {
  14. if (res.confirm) {
  15. // 强制当前小程序使用新版本并且会重启当前小程序
  16. updateManager.applyUpdate()
  17. }
  18. }
  19. })
  20. })
  21. }
  22. })

3. 生命周期介绍

应用生命周期是指应用程序进程从创建到消亡的整个过程

小程序的生命周期指的是 小程序从启动到销毁的整个过程

在打开一个小程序应用的时候都需要经历一系列的初始化步骤,比如页面是否加载完成、页面是否初次渲染完成等等。

在此过程中,小程序也会运行被称为生命周期钩子的函数,这些函数由小程序框架本身提供,被称为生命周期函数,生命周期函数会按照顺序依次自动触发调用。帮助程序员在特定的时机执行特定的操作,辅助程序员完成一些比较复杂的逻辑。让开发者有机会在特定阶段运行自己的代码。

小程序的生命周期分类三类:应用级别、页面级别和组件级别 3 种类型,我们先学习应用级别和页面级别的生命周期

 

4. 应用级别生命周期

知识点:

应用生命周期通常是指一个小程序从 启动 → 运行 → 销毁的整个过程

应用生命周期伴随着一些函数,我们称为 应用生命周期函数,应用生命周期函数需要 在 app.js 文件的 App() 方法中定义

当整个小程序应用运行到某个时机的时候,我们需要做一些事情。例如:当小程序启动成功之后,我们要获取小程序的一些信息,就可以在小程序启动成功时的钩子函数中写代码获取我们想要的信息。

生命周期必填说明
onLaunch监听小程序初始化,全局只会执行 1 次
onShow监听小程序启动或切前台
onHide监听小程序切后台

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/909709
推荐阅读
相关标签