什么是生命周期?

生命周期 就是指一个对象的生老病死。 从软件的角度来看,生命周期指程序从创建、到开始、暂停、唤起、停止、卸载的过程。
下面从三个方面来介绍小程序的生命周期:
(1)应用生命周期
(2)页面生命周期
(3)应用及页面生命周期的触发顺序

一、应用生命周期

App() 函数用来注册一个小程序。接受一个 object 参数,其指定小程序的生命周期函数等。
必须在 app.js 中调用,必须调用且只能调用一次,app.js中定义了一些应用的生命周期函数。

  • onLaunch: 初始化小程序时触发,全局只触发一次
  • onShow: 小程序初始化完成或用户从后台切换到前台显示时触发
  • onHide: 用户从前台切换到后台隐藏时触发
  • onError: 小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息

前台: 当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;
前台:当再次进入微信或再次打开小程序,又会从后台进入前台。

二、页面生命周期

js文件中定义了一些页面生命周期函数,下面简述下这些生命周期函数的方法作用

  • onLoad:首次进入页面加载时触发,可以在 onLoad 的参数中获取打开当前页面路径中的参数。
  • onShow:加载完成后、后台切到前台或重新进入页面时触发
  • onReady:页面首次渲染完成时触发
  • onHide:从前台切到后台或进入其他页面触发
  • onUnload:页面卸载时触发

总结:

onLoad: 页面加载。
1)一个页面只会调用一次。
2)参数可以获取wx.navigateTo和wx.redirectTo及中的 query。
onShow: 页面显示
1)每次打开页面都会调用一次。
onReady: 页面初次渲染完成
1)一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。
2)对界面的设置如wx.setNavigationBarTitle请在onReady之后设置。详见生命周期
onHide: 页面隐藏
1)当navigateTo或底部tab切换时调用。
onUnload: 页面卸载
1)当redirectTo或navigateBack的时候调用。

三、应用及页面生命周期的触发顺序

通过console.log验证它们的触发顺序
(1)从下图中可以看出,首次进入小程序会先触发应用生命周期中onLaunch方法和onShow方法,其次触发页面生命周期中onLoad、onShow和onReady方法。

(2)前台切换到后台时,先触发页面生命周期中onHide方法,再触发应用生命周期的onHide方法。

(3)后台切换到前台时,先触发应用生命周期中onShow方法,再触发页面生命周期的onShow方法。

小程序开发文档:App(Object object) | 微信开放文档

微信小程序的生命周期总结相关推荐

  1. 微信小程序 全局变量异步函数_微信小程序【生命周期】

    小程序分为应用.页面和组件三个部分,所以小程序的生命周期涉及以下 应用的生命周期 页面的生命周期 组件的声明周期 应用的生命周期对页面生命周期的影响 应用的生命周期 App() 函数用来注册一个小程序 ...

  2. 微信小程序:生命周期

    下面从三个方面来介绍小程序的生命周期: (1)应用生命周期 (2)页面生命周期 (3)应用及页面生命周期的触发顺序 1.应用生命周期 App() 必须在 app.js 中调用,必须调用且只能调用一次, ...

  3. 微信小程序应用生命周期

    完整微信小程序(Java后端) 技术贴目录清单页面(必看) App(Object object) 注册小程序.接受一个 Object 参数,其指定小程序的生命周期回调等. App() 必须在 app. ...

  4. 微信小程序【生命周期】

    应用的生命周期 页面的生命周期 组件的生命周期 应用的生命周期对页面生命周期的影响 小程序分为应用.页面和组件三个部分,所以小程序的生命周期涉及以下 应用的生命周期 页面的生命周期 组件的声明周期 应 ...

  5. 微信小程序 | 12.生命周期、globalData全局数据

    文章目录 1.小程序的生命周期 2.全局数据globalData 3.globalData的应用 3.1.搭配app.js的onLaunch()存储openid 3.2.轮询globalData 3. ...

  6. 教你理解微信小程序的生命周期和运行原理

    写微信小程序,他的生命周期不能不知道,不知道小程序就会出现各种bug而无法解决.小助君公众号带你学习小程序的生命周期和运行原理. 小程序由两大线程组成:负责界面的线程(view thread)和服务线 ...

  7. 微信小程序的生命周期详解

    文章目录 一.应用生命周期(App) 二.页面生命周期(page) 三.应用生命周期和页面生命周期 四.路由变化对页面生命周期的影响 一.应用生命周期(App) App()函数用来注册一个小程序.接受 ...

  8. 【微信小程序】生命周期

    1.1.什么是生命周期 生命周期(Life Cycle)是指一个对象从创建 => 运行 => 销毁的整个阶段,强调的是一个时间段. 小程序的启动,表示生命周期的开始 小程序的结束,表示生命 ...

  9. 微信小程序之生命周期

    生命周期是什么 我们可以把每个小程序运行的过程,概括为生命周期: 1. 小程序的启动,表示生命周期的开始 2. 小程序的关闭,表示生命周期的结束 3. 中间小程序运行的过程,就是小程序的生命周期 生命 ...

最新文章

  1. POJ2828 Buy Tickets【线段树,逆序遍历】
  2. 卧槽,B站联名键盘!
  3. 什么样的 RPC 才是好用的 RPC
  4. AppVerifier的功能和原理
  5. SAP屏幕设计器专题:编写控件代码(三)
  6. java执行class找不到main函数_你所不知道的HelloWorld背后的执行原理
  7. 【Python】实现输出成绩最高或最低分的学生姓名以及低于平均分的学生姓名
  8. Flask学习之基础知识与功能
  9. linux ssh 查看vg,linux SSH证书登录
  10. python读取us7ascii字符集Oracle数据库中文乱码问题的解决方案
  11. 文言的理解 —— 名词篇
  12. python常用代码大全-Python 网络爬虫实战项目代码大全
  13. pyspark入门---通过kmeans分析出租车数据并调用百度API进行可视化
  14. 【HTML简易版“冒险岛”小游戏】(游戏效果展示+全部源代码分享)
  15. 伍德里奇计量经济学导论之计算机操作题的R语言实现(虚拟变量)
  16. [leetcode]187. Repeated DNA Sequences寻找DNA中重复出现的子串
  17. ASO关键词排名的三种优化方式,aso关键词排名优化是
  18. Python爬虫技巧--selenium解除webdriver特征值
  19. 【C# 练习】3个可乐瓶可以换一瓶可乐,现在有364瓶可乐。问一共可以喝多少瓶可乐,剩下几个空瓶?
  20. 西岸风格合成器-Eventide Newfangled Audio Generate 1.2.1 WiN

热门文章

  1. java tpl文件_解决Layui tpl模板渲染文件上传不起作用
  2. 多线程模式下保证事物的一致性
  3. rosnode not fount 报错解决
  4. 【光线追踪系列九】物体动态模糊
  5. 基于深度学习的遥感测绘行业解决方案
  6. spring 配置相关
  7. Ubuntu下如何查看GPU版本和使用信息?
  8. 无法启动此程序,因为计算机中丢失opencv_core*d.dll vs2010
  9. 微分dx、dy是无穷小吗?
  10. 11.0、C语言数据结构——栈