微信小程序 生命周期详解


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 版
Mar 24 Javascript
jquery网页元素拖拽插件效果及实现
Aug 05 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
Aug 22 Javascript
Node.js实现在目录中查找某个字符串及所在文件
Sep 03 Javascript
如何编写高质量JS代码
Dec 28 Javascript
JS实现监控微信小程序的原理
Jun 15 Javascript
JavaScript中var、let、const区别浅析
Jun 24 Javascript
jQuery 点击获取验证码按钮及倒计时功能
Sep 20 jQuery
搭建一个Koa后端项目脚手架的方法步骤
May 30 Javascript
JS数组方法join()用法实例分析
Jan 18 Javascript
微信浏览器下拉黑边解决方案 wScroollFix
Jan 21 Javascript
javascript递归函数定义和用法示例分析
Jul 22 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 URL验证正则表达式
2011/07/19 PHP
PHP number_format() 函数定义和用法
2012/06/01 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
php增删改查示例自己写的demo
2013/09/04 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
php常用图片处理类
2016/03/16 PHP
php定期拉取数据对比方法实例
2019/09/22 PHP
基于jquery的二级联动菜单实现代码
2011/04/25 Javascript
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
JavaScript中的Math.LN2属性用法详解
2015/06/12 Javascript
javascript每日必学之封装
2016/02/23 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
使用PBFunc在Powerbuilder中支付宝当面付款功能
2016/10/01 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
vue如何从接口请求数据
2017/06/22 Javascript
JS实现无限轮播无倒退效果
2020/09/21 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
Django 使用logging打印日志的实例
2018/04/28 Python
python调用java的jar包方法
2018/12/15 Python
使用python绘制二维图形示例
2019/11/22 Python
深入浅析Python 函数注解与匿名函数
2020/02/24 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
Python实现Appium端口检测与释放的实现
2020/12/31 Python
Python爬取梨视频的示例
2021/01/29 Python
html5利用canvas绘画二级树形结构图的示例
2017/09/27 HTML / CSS
C# .NET面试题
2015/11/28 面试题
如何开发一个JQuery插件
2016/07/28 面试题
学生学习总结的自我评价
2013/10/22 职场文书
采购部主管岗位职责
2014/01/01 职场文书
施工资料员岗位职责
2014/01/06 职场文书
优秀求职信
2014/05/29 职场文书
会议通知范文
2015/04/15 职场文书
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记