微信小程序 生命周期详解


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 相关文章推荐
求得div 下 img的src地址的js代码
Feb 28 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
Mar 19 Javascript
JavaScript中发布/订阅模式的简单实例
Nov 05 Javascript
jQuery给多个不同元素添加class样式的方法
Mar 26 Javascript
谈一谈javascript闭包
Jan 28 Javascript
适用于javascript开发者的Processing.js入门教程
Feb 24 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
Jun 12 Javascript
js自调用匿名函数的三种写法(推荐)
Aug 19 Javascript
原生js实现中奖信息无间隙滚动效果
Jan 18 Javascript
Js实现京东无延迟菜单效果实例(demo)
Jun 02 Javascript
详解nvm管理多版本node踩坑
Jul 26 Javascript
Vue中实现回车键切换焦点的方法
Feb 19 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原创论坛
2006/10/09 PHP
如何使用脚本模仿登陆过程
2006/11/22 PHP
php过滤敏感词的示例
2014/03/31 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
Laravel 读取 config 下的数据方法
2019/10/13 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
jquery()函数的三种语法介绍
2013/10/09 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
2015/04/21 Javascript
JavaScript运算符小结
2015/06/03 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
wxPython的安装与使用教程
2018/08/31 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
2019/06/03 HTML / CSS
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
库房主管岗位职责
2013/12/31 职场文书
革命先烈的英雄事迹材料
2014/02/15 职场文书
合伙经营协议书
2014/04/18 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
小学毕业感言200字
2015/07/30 职场文书
Python万能模板案例之matplotlib绘制甘特图
2022/04/13 Python