背景 && frameBuffer
本质:A framebuffer (frame buffer, or sometimes framestore) is a portion of random-access memory (RAM) containing a bitmap that drives a video display
单缓存: 帧缓存区开辟一个屏幕绘图缓存区
大致分为两个操作:
- 读取缓存区的数据,绘制在页面上
- 向缓存去写数据
-
优点:读写可同时进行,写入的数据,可立即显示在页面上~
-
缺点:会出现画面撕裂,即屏幕上部分显示上一帧,部分下一帧~;原因:读缓存时,未写完~
为解决画面撕裂问题,双缓存来啦~
双缓存: 帧缓存区开辟两个屏幕绘图缓存区,交替使用,便于动画绘制;即读操作、写操作分别占用一个缓存区~
- 优点: 解决了撕裂问题
- 缺点:可能会存在16ms的延误(主流的屏幕刷新率都在 60Hz,那么渲染帧的间隔大约为16ms)
问题背景
react项目中:

期望: render可以拆分~
Fiber
目标: the ability to split rendering work into chunks and spread it out over multiple frames.
【思路】如果主线程一直被占用,则会导致页面卡顿~ 把一个耗时长的任务分成很多小片,每一个小片的运行时间很短,虽然总时间依然很长,但是在每个小片执行完之后,都给其他任务一个执行的机会,这样唯一的线程就不会被独占,其他任务依然有运行的机会
后面待我好好看看哈~
[参考文章]