小程序的生命周期

小程序生命周期

小程序实例(应用)的生命周期

小程序实例的生命周期必须在app.js中调用,在app.js中定义了一些实例的生命周期函数。

  • onLauch:初始化小程序的时候触发,全局只能触发一次,可以在这个生命周期函数中进行小程序的版本检测。
  • onShow:小程序初始化完成或用户从后台切换到前台显示时触发。
  • onHide:用户从前台切换到后台隐藏时触发。
  • onError:小程序发生脚本错误,或api调用失败时,会触发onError并带上错误信息。

什么是前台后台?

  1. 后台:点击左上角关闭,或者按了设备home键离开微信,并没有直接销毁,则此刻为进入后台;
  2. 前台:再次进入微信或再次打开微信小程序,相当于从后台进入前台。

页面的生命周期

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

应用和页面的生命周期触发顺序

  • 首次进入小程序会先触发应用生命周期中onLaunch方法和onShow方法,其次触发页面生命周期中onLoad、onShow和onReady方法。
  • 前台切换到后台时,会触发页面生命周期的onHide方法,再触发应用生命周期的onHide方法。
  • 后台切换到前台时,触发应用生命周期中的onShow方法,再触发页面中的onShow方法。

几个常见情况?

1.如何让小程序列表页面返回时不刷新页面,还是当前位置?
问题具体描述:当用户查看小程序列表的时候,比如点击列表的一个内容查看详情页,当看完详情页返回的时候,小程序默认是自动刷新又回到了列表页的顶部,如何让用户看完详情页返回列表不刷新,还是看的位置,继续浏览?
解析:可以从上面页面生命周期的函数中,我们可以知道onShow触发的条件,因此如果不想要返回时让列表页刷新时,我们就需要禁止在onShow生命周期函数中进行获取列表数据的操作,可以把获取列表数据的方法放在onLoad中。
2.如果想要刷新列表页的部分状态,但是还想让其显示跳走前用户浏览的位置,应该怎么做呢?
*解析:*在onReachBottom()函数中把请求到分页数据存到缓存中,再去详情页的时候记录点击点的offsetTop数值,把offsetTop值存到全局函数中app.globalData 中,在详情页设置返回列表页时再onShow: function() 做判断,如果缓存有值,就从缓存中取出先前存入的列表分页数据渲染到页面,在页面渲染完成后用wx.pageScrollTo,scrollTop值是从app.globalData 中取出的offsetTop值,滚动到刚才浏览的位置上。这里还要加一个判断,当浏览列表页没有分页数据的时候,缓存中就没有记录。缓存没有值就加载列表页第一页数据。在退出列表页是删除缓存数据。

学习于微信小程序:生命周期
问题来源于微信社区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值