小程序系列:onLoad,onReady和onShow等生命周期函数的区别和使用

小程序请求这部分,我们发现有onLoad,onReady,onShow等都可以调用function发送请求。他们之间有什么区别?首先官方文档先甩出来,这些都是微信页面page这个Object的声明周期函数里面的,其实点进去看定义就可以了,毕竟里面说的很清楚。

微信页面构造,生命周期函数

懒得看文档觉得不直观,我再甩你一张图,这个图也是官方的,虽然说你也不可能马上理解但是肯定会让你对小程序的page生命周期有一定了解。
看图(地址就不贴了上一个连接的最下面):
小程序系列:onLoad,onReady和onShow等生命周期函数的区别和使用_第1张图片
然后自己再BB总结一下
(1)onLoad
页面加载时触发,且只发生一次,有些数据实时性要求不高可以onlaod里面触发对应的请求

(2)onReady
页面初次渲染之后触发(只是初次,下一次页面渲染就没他什么事),只触发一次。你发送请求其实也可以把它当做onload毕竟也只是一次,但是你涉及到一些渲染的东西要注意了,设置页面标题之类的要在他之后再用。

(3)onShow
定义是页面显示,切入前台触发,用我的话来讲就是这个页面出现一次,他就被调用一次包括你前进后退到这个页面。
(4)onHide
可能你看图alive和active切换可能不太了解,但是你实际操作一下就知道,写一个简单得打印函数,在onHide里面调用,切换页面的时候你就会发现该函数被调用。你可以通过这个Hide的词来理解,这个页面切换到别的页面就会触发。

待续。。。。

实际使用注意
onload在页面加载的时候加载一次,而onShow就是切换到这个页面就会加载一次。所以很多操作尤其是有数据交互请求后台的的function函数要注意,该放onload就放在onload里面,该放在onShow就放在onShow里面,别一个请求多次触发然而没什么实际意义,减轻后台压力,查询日志也方便,不会有一大堆相同的无意义请求干扰。有些东西请求拿到数据可以放在缓存里,像有些数据时效性不是很高可以拿缓存数据处理,时效性有点高的数据,可以定时一段时间刷新请求一下,你如商品列表的商品,你onShow一次太频繁,不更新的话新的商品上新前台看不到,可以定时刷新请求一次获取数据。

放个自己的公众号的二维码:

小程序系列:onLoad,onReady和onShow等生命周期函数的区别和使用_第2张图片

你可能感兴趣的:(小程序)