周期指程序从创建、到开始、暂停、唤起、停止、卸载的过程。下面从一下三个方面介绍微信 小程序 的生命周期:
应用生命周期
页面生命周期
应用生兆散命周期影响页面生命周期
应用生命周期
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方法。
微信小程序启动进行自动登录问题,偶尔提示code过期,是由于onLaunch启动进行自动登录时,code提交到服务端,还未返回结果,页面page上执行onload请求部分需要登录的接口--由于此时还未返回登录信息,--认为当前未登录--跳转到登录页,登录界面服务端返回自动登录用户信息,此时登录启棚手界面用户点击登和衡录按钮,提示code已被使用,无法在进行登录 *** 作,原理上就是onLaunch未执行完就执行了page--onload导致出现问题,解决办法,控制执行完onLaunch再去执行page--onload,有以下3中方法:
解决办法
定义回调函数, onload里获取不到东西就一直获取,不执行下一步 *** 作,直到获取到app.js的数据才继续执行。若login返回为空,则给app.js注册一个loginSuccessCallback回调,这个回调方法的执行时机,就是app.js中的异步请求完毕
把 app.js 中的 onLaunch 中方法拿到 index.js 文件中悄嫌,按照自己的逻辑写
使用promise
1.
2.
3.
1、提高页面的加载速度:从页面响应孙孙樱用户点击行为,开始跳转,到新页面onload事件触发,延迟大概在100-300ms之间。我们可以利用这段时间,预先发起新页面所需要的网络请求
2、用户行为预测:
在某些场景下,用户的行为可以预测,我们可以在用户还没点击的时候就预加载下个页面的数据。让下个页面秒开,进一步提升体验则丛的流畅性。
3、减少默认的data的大小
4、组件化方案:
基类做的事情,就是把组件对象的属性和方法复制到Page对象上(浅拷贝凯纯)
5、
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)