今天看了卡颂老师fiber的双缓存,有一点没搞明白。网上都说双缓存的好处是:
1. 减少浏览器渲染空白时间(在wipfiber树计算完成之后,统一commit提交更新,切换到currentfiber)
2.对比新旧fiber
3.方便切换wipfiber和currentfiber,以及复用对象和dom
在build your own react中,在遍历fiber的时候使用单缓存wipfiber.alternate=currentfiber也能实现1和2。所以fiber的双缓存机制,实际上真正的用处是在wipfiber经过commit变成currentfiber之后,如果再回退更新的时候,可以直接通过currentfiber=currentfiber.alternate切换回来,这个时候单缓存还是满足的。但是如果想要切回来再切回去就要使用另一个缓存了。所以大部分场景下单缓存就能满足。所以react在什么场景下会在更新之后,回退更新,再切回最初的更新![[疑问]](//lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_31.606e7a5.png)