微信小程序生命周期(onLoad,onHide,onShow,onReady,onUnload)

微信小程序生命周期(onLoad,onHide,onShow,onReady,onUnload),第1张

周期指程序从创建、到开始、暂停、唤起、停止、卸载的过程。下面从一下三个方面介绍微信 小程序 的生命周期:

应用生命周期

页面生命周期

应用生命周期影响页面生命周期

应用生命周期

1、用户首次打开小程序,触发 onLaunch(全局只触发一次)。

2、小程序初始化完成后,触发onShow方法,监听小程序显示。

3、小程序从前台进入后台,触发 onHide方法。

4、小程序从后台进入前台显示,触发 onShow方法。

5、小程序后台运行一定时间,或系统资源占用过高,会被销毁。

前台、后台定义: 当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。需要注意的是:只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁。

页面生命周期

1、小程序注册完成后,加载页面,触发onLoad方法,一个页面只会调用一次。

2、页面载入后触发onShow方法,显示页面,每次打开页面都会调用一次。

3、首次显示页面,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次。

4、当小程序后台运行或跳转到其他页面时,触发onHide方法。

5、当小程序有后台进入到前台运行或重新进入页面时,触发onShow方法。

6、当使用重定向方法wx.redirectTo(OBJECT)或关闭当前页返回上一页wx.navigateBack(),触发onUnload

wx.navigateTo跳转状态下,页面A和页面B的生命周期逻辑

1、进入A页面:A执行onLoad()-->onShow()-->onReady();

2、A页面navigateTo B页面:A执行onHide(),B执行onLoad()-->onShow()-->onReady();

3、B页面返回A页面:B执行onUnload(),A执行onShow();

4、退出A页面:A执行onUnload()。

应用生命周期影响页面生命周期

1、小程序初始化完成后,页面首次加载触发onLoad,只会触发一次。

2、当小程序进入到后台,先执行页面onHide方法再执行应用onHide方法。

3、当小程序从后台进入到前台,先执行应用onShow方法再执行页面onShow方法。

小程序初始化 :

问题 : 在 onLaunch 里请求去获取是否有权限,等待返回值的时候, Page里的 onLoad 事件就已经执行.

目标: onLaunch 请求完 ->再执行Page的 onLoad 方法

解决 : 定义一个回调函数

这样就能满足需求: 在 onLaunch 执行完毕后,再执行 onload 里的函数方法.

在开发中,会有一些判断是在小程序初始化的时候建立的,比如说个人信息同步,同步之后在进行其他页面的相应的 *** 作,查看官方文档发现这个;

看到这个的时候,豁哈,找到宝了,是不是可开心了;

但是!你高兴的太早了!!哈哈哈... (都是泪)

实际上进入小程序首页的时候有时候会先执行onlaunch方法,有时又会先执行首页的onload的方法,最后经过测试可以确定,在小程序中这两个方法并没有执行先后的顺序,因为他们都是异步执行的。(前人的教训)

在page页面判断一下当前app.globalData.employ是否有值,如果没有,说明是第一次调用,则定义一个(回调函数)

App页面在请求success后判断时候有Page页面定义的回调方法,如果有就执行该方法。

在首页里

这样就可以实现我们想要的顺序:

[App] onLaunch => [Page] onLoad => [App] onLaunch sucess callback

源码可见 github


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7686139.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存