微信小程序 生命周期详解


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 相关文章推荐
网页里控制图片大小的相关代码
Jun 13 Javascript
jQuery-Easyui 1.2 实现多层菜单效果的代码
Jan 13 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
Jan 24 Javascript
使用node.js 获取客户端信息代码分享
Nov 26 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
Aug 21 Javascript
详解js私有作用域中创建特权方法
Jan 25 Javascript
JS递归遍历对象获得Value值方法技巧
Jun 14 Javascript
用jQuery的AJax实现异步访问、异步加载
Nov 02 Javascript
vue组件传递对象中实现单向绑定的示例
Feb 28 Javascript
JS代码实现电脑配置检测功能
Mar 21 Javascript
vue this.reload 方法 配置
Sep 12 Javascript
vue实现的下拉框功能示例
Jan 29 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+Html+缓存
2006/11/25 PHP
用php来改写404错误页让你的页面更友好
2013/01/24 PHP
总结PHP中DateTime的常用方法
2016/08/11 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
理解Javascript_05_原型继承原理
2010/10/13 Javascript
JS俄罗斯方块,包含完整的设计理念
2010/12/11 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
详解Vue源码学习之callHook钩子函数
2018/07/25 Javascript
python函数参数*args**kwargs用法实例
2013/12/04 Python
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
更改Ubuntu默认python版本的两种方法python-> Anaconda
2016/12/18 Python
python matplotlib坐标轴设置的方法
2017/12/05 Python
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
python实现屏保计时器的示例代码
2018/08/08 Python
Python sorted函数详解(高级篇)
2018/09/18 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
python 格式化输出百分号的方法
2019/01/20 Python
Python3利用print输出带颜色的彩色字体示例代码
2019/04/08 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
python爬虫基础之urllib的使用
2020/12/31 Python
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
建筑专业毕业生推荐信
2013/11/21 职场文书
安全教育演讲稿
2014/05/09 职场文书
2014法制宣传日活动总结范文
2014/11/01 职场文书
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS
浅谈Node的内存泄露问题
2022/05/06 NodeJs