微信小程序运行机制和生命周期

这篇具有很好参考价值的文章主要介绍了微信小程序运行机制和生命周期。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. 运行机制

首先了解下小程序的运行机制,小程序从启动到最终被销毁,会经历很多不同的状态,小程序在不同状态下会有不同的表现。大致运行机制如下图。

小程序生命周期图

小程序销毁事件,uni-app,微信小程序,小程序

接下来我们是图中概念讲解,项目中也会经常遇到。

1)小程序的启动

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

  • 冷启动: 如果用户首次打开,或者小程序销毁后被用户再次打开,此时小程序需要重新加载启动,就是冷启动。
  • 热启动: 如果用户已经打开过某小程序,然后在一定时间内再次打开该小程序,加载速度比前者快不少,说明此时小程序并未被销毁,只是从后台状态进入前台状态,这个过程就是热启动。
    从小程序生命周期的角度看,我们一般讲的启动专指冷启动,热启动一般指后台切前台。
2)小程序前后台

小程序完成加载之后,会有两种状态,分别是前台状态后台状态

  • 小程序启动后,界面被展示给用户,此时小程序处于前台状态
  • 当用户「关闭」小程序时,小程序并没有真正被关闭,而是进入了「后台」状态,此时小程序还可以短暂运行一小段时间,但部分 API 的使用会受到限制。这里操作就是上图中的切后台
  • 切后台的方式包括但不限于以下几种:
  1. 点击右上角胶囊按钮离开小程序
  2. iOS 从屏幕左侧右滑离开小程序
  3. 安卓点击返回键离开小程序
  4. 小程序前台运行时直接把微信切后台(手势或 Home 键)
  5. 小程序前台运行时直接锁屏

小程序销毁前,当用户再次进入微信并打开小程序,小程序又会重新进入前台状态。也就是前面说的热启动

3)挂起状态

小程序进入后台状态一段时间后(目前是 5 秒),微信会停止小程序 JS 线程的执行,小程序进入挂起状态。此时小程序的内存状态会被保留,但开发者代码执行会停止,事件和接口回调会在小程序再次进入「前台」时触发。

小tip:
当开发者使用了后台音乐播放后台地理位置等能力时,小程序可以在「后台」持续运行,不会进入到「挂起」状态。

在项目中定义了一个倒计时事件,经验证,后台挂起时内存状态确实被保留,事件停止执行,当在小程序销毁之前,进入前台,就开始执行倒计时事件。

4)小程序销毁事件

如果用户很久没有使用小程序,或者系统资源紧张,小程序会被「销毁」,即完全终止运行。具体而言包括以下几种情形:

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

2 ) 当小程序占用系统资源过高,可能会被系统销毁或被微信客户端主动回收。比如在 iOS 上,当微信客户端在一定时间间隔内连续收到系统内存告警时,会根据一定的策略,主动销毁小程序,并提示用户 「运行内存不足,请重新打开该小程序」
3) 在微信客户端下拉最近访问的小程序里删除,也会从内存里销毁。

二. 关于小程序生命周期

  1. 生命周期分为 程序页面 两部分,对于程序,我们冷启动小程序时,会触发onLaunch方法,当我们的小程序初始化完成后,便会触发onShow方法,页面加载并显示,此时触发页面的onLoadonShow方法,成功显示页面。
  2. 首次显示页面,还会触发onReady方法,对页面元素进行渲染,注意该方法,一个页面只会调用一次。
  3. 当小程序切入后台时,小程序会先触发页面的onHide方法,将页面隐藏,再触发 程序的onHide方法。
  4. 当小程序从后台切前台时,先触发程序onShow,再触发页面的onShow方法,将页面显示。

微信小程序运行机制官方文档
【微信小程序】运行机制和更新机制文章来源地址https://www.toymoban.com/news/detail-535433.html

到了这里,关于微信小程序运行机制和生命周期的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序 —— 生命周期

    小程序的生命周期,写在对象中。 全局 == 放在 app.js 中的 App({})中;单个页面 == 放在对应 js 文件中的 Page({})。 ⚠️注意:App({})必须在全局的app.js中调用,必须调用且只能调用一次。 onLaunch  —— 小程序初始化时触发,只触发一次(重新加载即触发) onShow —— 页面显示时

    2024年01月17日
    浏览(42)
  • 微信小程序生命周期

    必须在 app.js 中调用,必须调用且只能调用一次。 onLaunch : 小程序初始化完成时触发,全局只触发一次。 云开发的初始化 方便其他页面直接调用云开发的SDK 发送请求获取用户的个人信息 方便其他页面使用 获取本地存储数据 方便其他页面使用 onShow :小程序启动或切前台显

    2023年04月16日
    浏览(45)
  • 微信小程序——生命周期

    微信小程序有以下几个生命周期函数: onLaunch :小程序初始化时触发,只会执行一次。可以在此函数中进行全局的初始化操作。 onShow :小程序启动或从后台进入前台显示时触发。可以在此函数中执行需要在小程序显示时进行的逻辑操作。 onHide :小程序从前台进入后台时触

    2024年02月09日
    浏览(46)
  • 微信小程序 生命周期

    在小程序中,生命周期分为两类 应用生命周期 指小程序从启动-运行-销毁的过程 页面生命周期 特指小程序页面的加载-渲染-销毁的过程 生命周期函数是由小程序框架提供的内置函数,会自动按次序执行,生命周期函数允许程序员在特定的时间点执行某些特定的操作,比如,

    2024年02月13日
    浏览(40)
  • 微信小程序的生命周期

    生命周期(Life Cycle)是指一个对象从创建 - 运行 - 销毁的整个阶段,强调的是一个时间段。 我们可以把每个小程序运行的过程,也概括为生命周期: 小程序的启动,表示 生命周期的开始 小程序的关闭,表示 生命周期的结束 在小程序中,生命周期分为两类,分别是: ①应

    2024年02月03日
    浏览(46)
  • 微信小程序的组件的生命周期

    小程序组件可用的全部生命周期如下表所示。 在小程序组件中,最重要的生命周期函数有 3 个,分别是 created、attached、detached。它们各自的特点如下: 1 组件实例刚被创建好的时候,created 生命周期函数会被触发 此时还不能调用 setData 通常在这个生命周期函数中,只应该用于

    2024年02月09日
    浏览(42)
  • 微信小程序——生命周期详解(代码解读)

    ✅作者简介:2022年 博客新星 第八 。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:微信小程序学习分享 ✨特色专栏:国学周更-心性养成之路 🥭本文内容:微信小程序——使

    2024年02月07日
    浏览(40)
  • 关于微信小程序的生命周期

    关于微信小程序的生命周期 onLaunch  官网App.vue/App.uvue | uni-app官网 问题描述: 我现在有个小程序 取名为a   有个用户b 从来没有打开过小程序 那么他第一次打开小程序的时候会触发onLaunch   然后用户b退出了小程序 那么用户 b重新打开小程序的时候会触发 onLaunch吗 在微信小

    2024年02月09日
    浏览(44)
  • 微信小程序(十三)生命周期-更新应用提醒

    注释很详细,直接上代码 上一篇 新增内容: 1. onLaunch 用法 2. onShow 用法 3. onHide 用法 4.应用更新API的调用模板 源码: 效果演示: 模拟成功的情况 2.模拟失败的情况 下一篇

    2024年01月25日
    浏览(48)
  • 微信小程序_16,组件的生命周期

    组件的全部生命周期函数: 小程序可用的全部生命周期如下表所示: 生命周期函数 参数 描述说明 created 无 在组件实例刚刚被创建时执行 attached 无 在组件实例进入页面节点树时执行 ready 无 在组件在视图层布局完成后执行 mooved 无 在组件实例被移动到节点树另一个位置时执行

    2024年02月09日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包