微信小程序 生命周期详解


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 11 Javascript
Javascript中Eval函数的使用
Mar 23 Javascript
Prototype源码浅析 String部分(二)
Jan 16 Javascript
node.js下LDAP查询实例分享
Sep 30 Javascript
微信小程序 label 组件详解及简单实例
Jan 10 Javascript
Bootstrap显示与隐藏简单实现代码
Mar 06 Javascript
vue.js移动数组位置,同时更新视图的方法
Mar 08 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
Sep 18 Javascript
jQuery+PHP实现上传裁剪图片
Jun 29 jQuery
node.js中express模块创建服务器和http模块客户端发请求
Mar 06 Javascript
vue动画效果实现方法示例
Mar 18 Javascript
jQuery zTree树插件的使用教程
Aug 16 jQuery
让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关联数组的10个操作技巧
2013/01/21 PHP
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
JS使用onerror捕获异常示例
2016/08/03 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
JS操作input标签属性checkbox全选的实现代码
2017/03/02 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
关于jquery中attr()和prop()方法的区别
2018/05/28 jQuery
react+redux仿微信聊天界面
2019/06/21 Javascript
寻找网站后台地址的python脚本
2014/09/01 Python
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
Python调用命令行进度条的方法
2015/05/05 Python
Python中的字符串操作和编码Unicode详解
2017/01/18 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
2017/09/24 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
python删除字符串中指定字符的方法
2018/08/13 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
Python建造者模式案例运行原理解析
2020/06/29 Python
美国知名运动产品零售商:Foot Locker
2016/07/23 全球购物
C语言编程题
2015/03/09 面试题
写好求职信第一句话的技巧
2013/10/26 职场文书
成立公司计划书
2014/05/07 职场文书
校园演讲稿汇总
2014/05/21 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
思想作风整顿个人剖析材料
2014/10/06 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
国际贸易实务实训报告
2014/11/05 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
MySQL数字类型自增的坑
2021/05/07 MySQL
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS
Ruby处理CSV数据方法详解
2022/04/18 Ruby