我在看react的渲染过程的时候,我发现react的渲染过程与浏览器的渲染过程极其相似。
是不是你也会很好奇到底是怎么回事,让我们一探究竟把。
首先说过的相似的部分有哪些呢?
我们先进行对比一番把。
首先我是在看到这个react的渲染过程也是对事件也就是task进行事件循环机制的方式调度,同时也进行了相应的优先级的现后顺序排序,感觉到这个与浏览器本身的一些核心的操作是不是非常相似。我不由在想,他会不会真的是参考了浏览器的原理去实现的这些。
然后我去查找了相关的react相关资料,发现真的是这样。react 公开了他的一些借鉴,我觉得这个行为很nice。
React 团队公开承认的灵感来源:
- Fiber 架构:直接参考了浏览器渲染线程的[可中断渲染模型]
-
Scheduler:复现了
requestIdleCallback
的[优先级调度逻辑] - Lane 模型:借鉴了 Chrome 的[任务优先级系统]
那我们也就对这一块的实现更加了然于胸了。