微信小程序组件生命周期的踩坑记录
如果业务场景比较复杂,组件生命周期有不符合预期的表现时,可能会导致一些诡异的业务bug,它们极难复现和修复。组件 attached 生命周期执行次数按照通常的理解,除moved/show/hide等生命周期可能多次执行外,严格意义上与组件加载相关的生命周期,如:created、attached、ready等,每个组件实例应该只执行一次。该问题并不容易复现,但是通过不断删繁就简、抽丝剥茧,最终还是找到了问题的根源:。串数据发生在多个场景,考虑到数据是通过消息推送到小程序端上的,最终怀疑问题出在WebSocket通信上。在小程序端,我们封装了一个WebSocket通信组件,核心逻辑如下:简单说,就是在组件ready时,初始化一个WebSocket连接并监听消息推送,然后在detached阶段关闭连接。
用户评论