react源码

2021-09-05  本文已影响0人  糖糖不加糖_

https://xiaochen1024.com/article_item/600ac4384bf83f002edaf54a

以下用到了什么数据结构或方式
react分为几个模块

scheduler、reconciler在内存中进行,不影响真实节点
react 17版本的出现,带来了全新的concurrent mode,包含一类功能的合集(fiber、scheduler、lane、suspense),核心是实现了一套,异步可中断,带优先级的更新

其他
scheduler时间片

js执行线程和GUI也就是浏览器的绘制是互斥的,如果在时间内,没有执行完js,则暂停执行,将执行权交还给浏览器绘制,等下一帧继续执行

image.png
Lane

每个优先级是一个31位的二进制数字,1表示位置可用,0表示位置不可用(转换为10进制,数值越小,优先级越高),Lane的优先级粒度更细,ps:二进制计算性能更高

fiber双缓存
render阶段
commit阶段
image.png
diff算法(单节点diff、双节点diff)

diff算法三个前提

单节点diff(Element、Portal、string、number)

多节点diff(Array、Iterator)
会经历三次遍历(而newChildren存在于jsx当中)

上一篇 下一篇

猜你喜欢

热点阅读