微信小程序 生命周期详解


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 相关文章推荐
prototype.js的Ajax对象
Sep 23 Javascript
为jQuery.Treeview添加右键菜单的实现代码
Oct 22 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
Dec 11 Javascript
js中的异常处理try...catch使用介绍
Sep 21 Javascript
js获取内联样式的方法
Jan 27 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
Jun 13 Javascript
AngularJs  Creating Services详解及示例代码
Sep 02 Javascript
利用forever和pm2部署node.js项目过程
May 10 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
Jun 08 Javascript
vue+element-ui+axios实现图片上传
Aug 20 Javascript
layui 上传文件_批量导入数据UI的方法
Sep 23 Javascript
jquery实现掷骰子小游戏
Oct 24 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防攻击代码升级版
2010/12/29 PHP
php报表之jpgraph柱状图实例代码
2011/08/22 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
Laravel框架控制器,视图及模型操作图文详解
2019/12/04 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
javascript将list转换成树状结构的实例
2017/09/08 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
在vue中实现点击选择框阻止弹出层消失的方法
2018/09/15 Javascript
JS实现多选框的操作
2020/06/24 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
[00:35]DOTA2上海特级锦标赛 Newbee战队宣传片
2016/03/03 DOTA
python爬取NUS-WIDE数据库图片
2016/10/05 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
2018/05/18 Python
Python使用pymongo模块操作MongoDB的方法示例
2018/07/20 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
python suds访问webservice服务实现
2020/06/26 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
2021/01/24 Python
数据库专业英语
2012/11/30 面试题
工程类专业自荐信范文
2014/03/09 职场文书
应聘教师求职信
2014/07/19 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
乌镇导游词
2015/02/02 职场文书
上班旷工检讨书
2015/08/15 职场文书
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python