微信小程序 生命周期详解


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 相关文章推荐
JavaScript prototype属性使用说明
May 13 Javascript
原生的html元素选择器类似jquery选择器
Oct 15 Javascript
javascript实现简单的ajax封装示例
Dec 28 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 jQuery
bootstrap table使用入门基本用法
May 24 Javascript
vue通过点击事件读取音频文件的方法
May 30 Javascript
Angular5中提取公共组件之radio list的实例代码
Jul 10 Javascript
js 将线性数据转为树形的示例代码
May 28 Javascript
vue使用微信JS-SDK实现分享功能
Aug 23 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
Nov 03 Javascript
JavaScript 去重和重复次数统计
Mar 31 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/11/26 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
2016/11/05 PHP
php preg_match的匹配不同国家语言实例
2016/12/29 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
php使用socket调用http和smtp协议实例小结
2019/07/26 PHP
js location.replace与location.reload的区别
2010/09/08 Javascript
JS获取浏览器版本及名称实现函数
2013/04/02 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
2016/03/21 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
Nodejs下DNS缓存问题浅析
2016/11/16 NodeJs
js设置文字颜色的方法示例
2016/12/30 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
微信小程序 实现点击添加移除class
2017/06/12 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
[01:22:29]真视界:2019年国际邀请赛总决赛
2020/01/29 DOTA
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
用Python写冒泡排序代码
2016/04/12 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
python实现对输入的密文加密
2019/03/20 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
python 解决pycharm运行py文件只有unittest选项的问题
2020/09/01 Python
彪马美国官网:PUMA美国
2017/03/09 全球购物
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
房地产销售经理岗位职责
2014/01/01 职场文书
股权投资意向书
2014/04/01 职场文书
财务会计大学生自我评价
2014/04/09 职场文书
支部组织生活会方案
2014/06/10 职场文书
人工作失职检讨书
2015/05/05 职场文书
浅谈Laravel中使用Slack进行异常通知
2021/05/29 PHP
详解Python flask的前后端交互
2022/03/31 Python