• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

太坑: 微信小程序生命周期(onLoad,onHide,onShow,onReady,onUnload)的坑 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

https://www.jianshu.com/p/49c153fca075

在写一个业务逻辑的时候遇到一个问题。。小程序wxml的数据在你返回微信主页的时候是不算退出的,只能算onhide,并且小程序没有给退出小程序的监听方法,之前看文章说用信号量来监测,确实可以实现一部分,但是如果小程序有tabbar的话,,这个方法也不好使。所以我遇到的问题就是,第一次扫码进入一个小程序,刷新出来数据以后,返回微信主界面,再点开这个小程序,首页的数据在不重新请求的情况下,之前绑定的数据就没有了;但是如果你手动刷新出来数据,仍然返回微信主页面,然后再打开这个小程序,在不刷新数据的情况下,上次的数据会保留下来,这就让我很烦恼。。没有数据的小程序。。估计会让人秒删。。然后我从wxml的生命周期找答案

图1

        我发现。。在没有杀死微信这个app的情况下。。

第一次打开小程序,以上前3个方法各执行1次,当第一次回到微信主页面的时候onHide,onUnload各执行1次;

第二次打开小程序,以上前3个方法各执行1次,当第二次回到微信主页面的时候onHide执行1次,onUnload不执行;

第三次打开小程序,onLoad,onReady不执行,onShow执行一次;当第三次回到微信主页面的时候onHide执行1次,onUnload不执行;

第四次打开小程序,同第三次

第五次。。。。。同第三次。。。

。。。

也就是说,当小程序执行了onUnload的时候,wxml绑定的数据就会消失,然后再进入小程序才会走onLoad方法

心细的话你会发现第一次退出和第二次退出有什么区别:

 

图2

第一次打开小程序并退出的话,是下面这个(朋友圈)页面

 

图3

第2次打开小程序并退出的话,是下面这个(小程序)页面

 

图4

不要小看这个细节、当是图3的时候,小程序打开是要走onLoad方法的,因为上次关闭的时候走了onUnload方法、当是图4情况的话,就不会走onLoad方法,它的上一次退出也没走onUnload方法、小程序的生命周期发生了挺大变化,当然这个细节大部分业务逻辑不用关心,但是真的用到的时候,不清楚这个知识点可能会多写很多代码,我相信某个时间点你会感激我的,哈哈

tips:所有情况都是针对微信app没有被杀死的情况下讨论的,如果微信这个app被杀死,那小程序自然被杀死



作者:李世达
链接:https://www.jianshu.com/p/49c153fca075
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序发送-----模板消息发布时间:2022-07-18
下一篇:
在自己小程序中打开问卷或考试发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap