HJY-xh / plantTrees

每天几个前端小知识📙 2021.2.14 - new Date()
MIT License
22 stars 4 forks source link

[2021-3-10] React中的双缓存是什么? #44

Open HJY-xh opened 3 years ago

HJY-xh commented 3 years ago

当我们用canvas绘制动画,每一帧绘制前都会调用ctx.clearRect清除上一帧的画面。

如果当前帧画面计算量比较大,导致清除上一帧画面到绘制当前帧画面之间有较长间隙,就会出现白屏。

为了解决这个问题,我们可以在内存中绘制当前帧动画,绘制完毕后直接用当前帧替换上一帧画面,由于省去了两帧替换间的计算时间,不会出现从白屏到出现画面的闪烁情况。

这种在内存中构建并直接替换的技术叫做双缓存 (opens new window)。

React使用“双缓存”来完成Fiber树的构建与替换——对应着DOM树的创建与更新。

HJY-xh commented 3 years ago

答案来源