如下:

分别为:是什么、有哪些、执行顺序。

一、是什么

跟vue、react框架一样,微信小程序框架也存在生命周期,实质也是一堆会在特定时期执行的函数

小程序中,生命周期主要分成了三部分:

·应用的生命周期

·页面的生命周期

·组件的生命周期

1.(应用的生命周期)

小程序的生命周期函数是在app.js里面调用的,通过App(Object)函数用来注册一个小程序,指定其小程序的生命周期回调。

2.(页面的生命周期)

页面生命周期函数就是当你每进入/切换到一个新的页面的时候,就会调用的生命周期函数,同样通过App(Object)函数用来注册一个页面。

3.(组件的生命周期)

组件的生命周期,指的是组件自身的一些函数,这些函数在特殊的时间点或遇到一些特殊的框架事件时被自动触发,通过Component(Object)进行注册组件。

二、有哪些

1.(应用的生命周期)

·生命周期

(说明)

·onLaunch

小程序初始化完成时触发,全局只触发一次。

·onShow

小程序启动,或从后台进入前台显示时触发。

·onHide

小程序从前台进入后台时触发。

·onError

小程序发生脚本错误或 API 调用报错时触发。

·onPageNotFound

小程序要打开的页面不存在时触发。

·onUnhandledRejection()

小程序有未处理的 Promise 拒绝时触发。

·onThemeChange

系统切换主题时触发。

2.(页面的生命周期)

·生命周期

(说明)

作用:

·onLoad

生命周期回调—监听页面加载

发送请求获取数据

·onShow

生命周期回调—监听页面显示

请求数据

·onReady

生命周期回调—监听页面初次渲染完成

获取页面元素(少用)

·onHide

生命周期回调—监听页面隐藏

终止任务,如定时器或者播放音乐

·onUnload

生命周期回调—监听页面卸载

终止任务

3.(组件的生命周期)

·生命周期

(说明)

·created

生命周期回调—监听页面加载

·attached

生命周期回调—监听页面显示

·ready

生命周期回调—监听页面初次渲染完成

·moved

生命周期回调—监听页面隐藏

·detached

生命周期回调—监听页面卸载

·error

每当组件方法抛出错误时执行

注意的是:

组件实例刚刚被创建好时, created 生命周期被触发,此时,组件数据 this.data 就是在 Component 构造器中定义的数据 data , 此时不能调用 setData

在组件完全初始化完毕、进入页面节点树后, attached 生命周期被触发。此时, this.data 已被初始化为组件的当前值。这个生命周期很有用,绝大多数初始化工作可以在这个时机进行

在组件离开页面节点树后, detached 生命周期被触发。退出一个页面时,如果组件还在页面节点树中,则 detached 会被触发

还有一些特殊的生命周期,它们并非与组件有很强的关联,但有时组件需要获知,以便组件内部处理,这样的生命周期称为“组件所在页面的生命周期”,在 pageLifetimes 定义段中定义,如下:

·生命周期

(说明)

·show

组件所在的页面被展示时执行

·hide

组件所在的页面被隐藏时执行

代码如下:

App({ /** * 当小程序初始化完成时,会触发 onLaunch(全局只触发一次) */ onLaunch: function () { }, /** * 当小程序启动,或从后台进入前台显示,会触发 onShow */ onShow: function (options) { }, /** * 当小程序从前台进入后台,会触发 onHide */ onHide: function () { }, /** * 当小程序发生脚本错误,或者 api 调用失败时,会触发 one rror 并带上错误信息 */ one rror: function (msg) { } })

三、执行过程

1.(应⽤的⽣命周期执行过程)

·⽤户⾸次打开⼩程序,触发 onLaunch(全局只触发⼀次)

·⼩程序初始化完成后,触发onShow⽅法,监听⼩程序显示

·⼩程序从前台进⼊后台,触发 onHide⽅法

·⼩程序从后台进⼊前台显示,触发 onShow⽅法

·⼩程序后台运⾏⼀定时间,或系统资源占⽤过⾼,会被销毁

2.(⻚⾯⽣命周期的执行过程)

·⼩程序注册完成后,加载⻚⾯,触发onLoad⽅法

·⻚⾯载⼊后触发onShow⽅法,显示⻚⾯

·⾸次显示⻚⾯,会触发onReady⽅法,渲染⻚⾯元素和样式,⼀个⻚⾯只会调⽤⼀次

·当⼩程序后台运⾏或跳转到其他⻚⾯时,触发onHide⽅法

·当⼩程序有后台进⼊到前台运⾏或重新进⼊⻚⾯时,触发onShow⽅法

·当使⽤重定向⽅法 wx.redirectTo() 或关闭当前⻚返回上⼀⻚wx.navigateBack(),触发onUnload

·当存在也应用生命周期和页面周期的时候,相关的执行顺序如下:

·打开小程序:(App)onLaunch --> (App)onShow --> (Pages)onLoad --> (Pages)onShow --> (pages)onRead

·进入下一个页面:(Pages)onHide --> (Next)onLoad --> (Next)onShow --> (Next)onReady

·返回上一个页面:(curr)onUnload --> (pre)onShow

·离开小程序:(App)onHide

·再次进入:小程序未销毁 --> (App)onShow(执行上面的顺序),小程序被销毁,(App)onLaunch重新开始执行。

微信小程序的生命周期函数相关推荐

  1. 微信小程序的生命周期总结

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

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

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

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

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

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

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

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

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

  6. 小程序的生命周期函数

    小程序中的生命周期函数钩子函数 声明周期: 声明周期是指一个小程序从创建到销毁的一系列过程 小程序的两种生命周期 在小程序中 ,通过App()来注册一个小程序 ,通过Page()来注册一个页面 1.小 ...

  7. 页面生命周期_微信小程序的生命周期学习笔记-应用篇

    在我们学习微信小程序的过程当中,我们会参考很多资料.在这些资料中,我们经常能够看到"生命周期"四个字,在前面的课程中也提到过.在这里做一个说明. 生命周期是一类函数的统称,这些函数 ...

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

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

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

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

最新文章

  1. Python SQLAlchemy
  2. PyQt5 技术篇-设置输入框的placeholder方法,Qt Designer设置Line Edit、Text Edit编辑框的placeholder
  3. DL之InceptionV4/ResNet:InceptionV4/Inception-ResNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  4. PUSHA/PUSHAD POPA/POPAD 指令详解
  5. linux下的嵌入式开发技能(嵌入式工程师必备)
  6. Java BigInteger类| 带有示例的减去()方法
  7. OpenSSH 6.7 发布 开源ssh服务器软件
  8. mysql排序自段为字符串类型问题解决
  9. 什么是SQL Server日志传送?
  10. WordPress后台友情链接的追加
  11. pageSize不生效
  12. 如何查看台式机计算机网络密码,如何从计算机检查已知的WiFi密码
  13. android 遥控器方向,android万能遥控器之一--前言及发射部分的简单实现
  14. python 数据分析 |3. Pandas 学习
  15. 正则表达式 匹配中文,英文字母和数字及_长度详解
  16. 【自己写全景】TreeJs实现全景图
  17. Vue如何访问Public文件夹
  18. 10个的常用PyCharm插件
  19. 华为路由器和交换机的简单命令
  20. 正则中的\d与\D、\w与\W、\s与\S各代表什么意思

热门文章

  1. TimX_Ch1与TimX_Ch1N的差异
  2. ant design pro,删除最后一页退回上一页
  3. Kurl——轻量化http-authentication在线暴破工具
  4. pandas读取文件参数
  5. unity3d发布webgl手机测试流程
  6. 20050620 GNU Bison 中文手册翻译完成
  7. 浅析negroni-gzip 过滤器的源码
  8. 计算机基础--作业5,计算机基础第5次作业-第五章-Powerpoint知识题 (精选可编辑)...
  9. 小虎电商浏览器:鹰智客服插件怎么下载?安装麻烦吗?
  10. php网页解析器,浅析php插件 HTMLPurifier HTML解析器