微信小程序 生命周期详解


Posted in Javascript onOctober 12, 2016

微信小程序 生命周期

通俗的讲,生命周期就是指一个对象的生老病死。 从软件的角度来看,生命周期指程序从创建、到开始、暂停、唤起、停止、卸载的过程。

下面从一下三个方面介绍微信小程序的生命周期:

  1. 应用生命周期
  2. 页面生命周期
  3. 应用生命周期影响页面生命周期

》》》应用生命周期

微信小程序 生命周期详解

  1. 用户首次打开小程序,触发 onLaunch(全局只触发一次)。
  2. 小程序初始化完成后,触发onShow方法,监听小程序显示。
  3. 小程序从前台进入后台,触发 onHide方法。
  4. 小程序从后台进入前台显示,触发 onShow方法。
  5. 小程序后台运行一定时间,或系统资源占用过高,会被销毁。

前台、后台定义: 当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。

在整理本文资料的时候,有点不解,为什么不把小程序监听『销毁』方法开放给开发者,我猜测是因为IOS系统限制『按下Home键时,app从活动状态转入后台,会被挂起』;微信也不例外,只要运行一段时间或把微信客户端进程杀掉,就无法通知小程序应用被销毁。

》》》页面生命周期

微信小程序 生命周期详解

  1. 小程序注册完成后,加载页面,触发onLoad方法。
  2. 页面载入后触发onShow方法,显示页面。
  3. 首次显示页面,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次。
  4. 当小程序后台运行或跳转到其他页面时,触发onHide方法。
  5. 当小程序有后台进入到前台运行或重新进入页面时,触发onShow方法。
  6. 当使用重定向方法wx.redirectTo(OBJECT)或关闭当前页返回上一页wx.navigateBack(),触发onUnload

》》》应用生命周期影响页面生命周期

微信小程序 生命周期详解

  1. 小程序初始化完成后,页面首次加载触发onLoad,只会触发一次。
  2. 当小程序进入到后台,先执行页面onHide方法再执行应用onHide方法。
  3. 当小程序从后台进入到前台,先执行应用onShow方法再执行页面onShow方法。

下图是小程序从注册到页面加入,前后台切换流程。

微信小程序 生命周期详解

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
用js判断用户浏览器是否是XP SP2的IE6
Mar 08 Javascript
javascript之通用简单的table选项卡实现(二)
May 09 Javascript
Javascript实现Array和String互转换的方法
Dec 21 Javascript
jquery中键盘事件小结
Feb 24 Javascript
js 声明数组和向数组中添加对象变量的简单实例
Jul 28 Javascript
js实现产品缩略图效果
Mar 10 Javascript
vue源码学习之Object.defineProperty对象属性监听
May 30 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
Jul 31 Javascript
详解JavaScript实现动态的轮播图效果
Apr 29 Javascript
layui动态表头的实现代码
Aug 22 Javascript
微信小程序绑定手机号获取验证码功能
Oct 22 Javascript
js闭包和垃圾回收机制示例详解
Mar 01 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
Oct 12 #Javascript
Angularjs手动解析表达式($parse)
Oct 12 #Javascript
js利用clipboardData实现截屏粘贴功能
Oct 12 #Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
Oct 12 #Javascript
jQuery给指定的table动态添加删除行的操作方法
Oct 12 #Javascript
详解Javascript中的原型OOP
Oct 12 #Javascript
浅析BootStrap Treeview的简单使用
Oct 12 #Javascript
You might like
php 在文件指定行插入数据的代码
2010/05/08 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
php创建图像具体步骤
2017/03/13 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
用js生产批量批处理执行命令
2008/07/28 Javascript
js 判断一个元素是否在页面中存在
2012/12/27 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
jQuery动态添加
2016/04/07 Javascript
不同js异步函数同步的实现方法
2016/05/28 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
2017/09/25 Javascript
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
[01:13]DOTA2群星解读国服召集令 一起说出回归的理由
2013/07/17 DOTA
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
如何安装并使用conda指令管理python环境
2019/07/10 Python
在Sublime Editor中配置Python环境的详细教程
2020/05/03 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
公司财务流程之主管工作流程
2014/03/03 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
月度优秀员工获奖感言
2014/08/16 职场文书
大学生党员学习焦裕禄精神思想汇报
2014/09/10 职场文书
实习协议书范本
2014/09/25 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
个人自荐书怎么写
2015/03/26 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang