先简要说说小程序的生命周期:
应用的生命周期:App({…}) 用来注册小程序,指定小程序的生命周期
页面的生命周期:Page({…}) 注册页面,指定页面的生命周期
具体注册函数的内容见小程序官网API

其中有三个生命周期函数的触发顺序:onLoad->onShow->onReady (页面加载->页面显示->页面初次渲染)
onLoad和onReady每个页面只会触发一次,如果一个页面没有onUnload,则不会再次触发onLoad和onReady
onReady:页面首次渲染完成,可以进行交互

下面谈一下项目使用过程中出现的从下一页面跳回上一页面,页面不刷新的问题,本质上来说是微信小程序中跳转API所对应的生命周期的问题
用wx.navigatorTo()进行页面跳转时,假设A—>B,此时B是作为A的一个子页面存在的,A并没有卸载onUnLoad,只是onHide了,仍在后台运行;从B跳回A,自然不会重新onLoad,只会onShow。
在具体的业务场景中,我们希望当在子页面B中用户进行数据修改和表单提交之后,返回到父页面A中时,A获取到的相关数据能够更新,但,小程序的对wx.navigatorTo()的生命周期的安排不会再去获取数据,要想页面A强制刷新,在A 的onShow函数中强制发请求再获取数据执行方法。

后面有时间会写一篇对微信小程序生命周期的详细分析

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐