微信小程序:生命周期

下面从三个方面来介绍小程序的生命周期:
(1)应用生命周期
(2)页面生命周期
(3)应用及页面生命周期的触发顺序

1.应用生命周期

App() 必须在 app.js 中调用,必须调用且只能调用一次,app.js中定义了一些应用的生命周期函数
(1)onLaunch: 初始化小程序时触发,全局只触发一次
(2)onShow: 小程序初始化完成或用户从后台切换到前台显示时触发
(3)onHide: 用户从前台切换到后台隐藏时触发
(4)onError: 小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
后台: 点击左上角关闭,或者按了设备 Home 键离开微信,并没有直接销毁,而是进入后台
前台:再次进入微信或再次打开小程序,相当于从后台进入前台。
官方介绍https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html

应用生命周期

2.页面生命周期

js文件中定义了一些页面生命周期函数,下面简述下这些生命周期函数的方法作用
(1)onLoad:首次进入页面加载时触发,可以在 onLoad 的参数中获取打开当前页面路径中的参数。
(2)onShow:加载完成后、后台切到前台或重新进入页面时触发
(3)onReady:页面首次渲染完成时触发
(4)onHide:从前台切到后台或进入其他页面触发
(5)onUnload:页面卸载时触发
官方介绍https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html

页面生命周期

3.应用与页面生命周期触发顺序

通过console.log验证它们的触发顺序
(1)从图中可以看出,首次进入小程序会先触发应用生命周期中onLaunch方法和onShow方法,其次触发页面生命周期中onLoad、onShow和onReady方法。
首次进入小程序
(2)前台切换到后台时,先触发页面生命周期中onHide方法,再触发应用生命周期的onHide方法。
从前台切换到后台
(3)后台切换到前台时,先触发应用生命周期中onShow方法,再触发页面生命周期的onShow方法。
从后台切换到前台
以上是对生命周期粗略的认识,如有不足请指正!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407382.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在.NET3.5平台上使用LinQ to SQL + NBear 创建三层WEB应用

看了《一步一步学Linq to sql》和《在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统》 这两个系列文章后,因为一直使用NBear,所以试着综合了一下主要用NBear.IOC其它的NBear.data里的就没有会了,相应的使用LINQ来做数据处理. 之前一直使用NBear做些WEB应用主要感觉N…

递归修改子目录及文件的权限

背景:当我们的虚拟机和windows系统共享windows上的一个目录(记为:A)时,把该目录下的目录(记为B)移动(mv)到linux下的任意目录下,这个目录B及下面的子目录或文件的权限都是rwx(777),这是他们在windows下的权限。因此用l…

JS之字符串连接方法join

作用:join() 方法用于把数组中的所有元素放入一个字符串,元素是通过指定的分隔符进行分隔的。(作用和split正好相反) 语法:arrayObject.join(separator) 参数:可选。指定要使用的分隔符。如果省略该参数&…

2.[Yii]创建与设置默认控制器及载入模板

1.创建控制器与访问 class IndexController extends Controller {//访问 index.php?rindex/index//r后面 其中第一个是控制器,第二个是方法,r就是路由route的缩写public function actionIndex(){$this->render("index");//载入模板文件} }…

程序根据手机机型设置自定义底部导航距离

需求: iponeX 以上机型,手机底部有弧度,自己写的导航栏会被遮住, 需要判断手机机型,做兼容设置. 解决: //app.js App({/*** 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)*/onLaunch: function() {var that this;//获取手机型号…

张雨生《口是心非》

[hjp3]hjptypesong&player1&sonhttp://www.justin-rao.net/songs/[1997]%20ZhangYuSheng%20-%20KouShiXinFei%20-%2002%20-%20KouShiXinFei.mp3&autoplayno&captionfalse&lrc&autoreplay1&bgcolorFFFFFF&width200&height20[/hjp3] 转载于:…

JS之颠倒数组元素的reverse方法

作用:reverse() 方法用于颠倒数组中元素的顺序 语法:arrayObject.reverse() 注意:该方法会改变原来的数组,而不会创建新的数组 实例1:

图文:详解数据库Oracle 11g的基本安装

From: http://blog.csdn.net/wjcreator123/article/details/3243041 下面提供的是Oracle 11g的下载地址和基本安装过程(仅作参考) 第一步: oracle服务端下载: http://down.zdnet.com.cn/detail/9/82225.shtml 客户端: http://blog.csdn.net…

acid(数据库事务正确执行的四个基本要素的缩写)

ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务&am…

mysql数据库中查看当前使用的数据库是哪个数据库?

一、用select database()语句 语句 mysql > select database();结果 解释:表示的是当前使用的是哪个数据库或者说会话登录到了哪个数据库中。 二、用show tables语句 语句 mysql > show tables;结果 解释:查询出来的结果中,第一行…

JS之返回数组指定元素的slice

作用:slice() 方法可从已有的数组中返回选定的元素 语法:arrayObject.slice(start,end) 参数1:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,…

使用 ADO.NET 的 NextResult 方法取得多个 Result Set

(本帖在版工的旧 Blog 中,发表日期为 2007/04/06) (本帖有些 Hyperlink 是连到台湾的网站,若无法连结,麻烦请留言反应)从 ADO.NET 1.x 开始,DataReader 就可以在单一次的查询动作中,「批次 (batch)」读取 T-SQL 语句以…

linux下启动与关闭oracle监听与实例

linux中启动oracle主要分两步:一个是启动监听器,一个是启动实例(一般都忘记了这一步),具体命令如下,提供给大家参考一下: 1:连接服务器 telnet ip 2:输入管理员用户和密码 user-name:oracle password:oracle 3:进入oracle根目录 …

同步和互斥

一、同步和互斥的基本概念 现代操作系统基本都是多任务操作系统,即同时有大量可调度实体在运行,同时运行可能是真的同时运行(SMP架构中),也可能仅仅是操作系统提供的服务(通过将CPU时间分片,并将…

Mysql常用命令行大全

1、连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1、连接到本机上的MYSQL。 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空…

React开发(113):git 操作记录

git reflog 可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录 具体一个例子,假设有三个commit, git st: …

从printf谈可变参数函数的实现

作者:戎亚新 摘要:一直以来都觉得printf似乎是c语言库中功能最强大的函数之一,不仅因为它能格式化输出,更在于它的参数个数没有限制,要几个就给几个,来者不拒。printf这种对参数个数和参数类型的强大适应性…