夜雨聆风学习资料网

ARTICLE · 1006751

React 源码剖析

React 源码剖析

React 源码的核心,就是靠一套机制把状态变成真实页面。

JSX 只是份“装修图纸”。它最终会变成普通对象。Fiber 树才是真正干活的。旧版递归渲染一口气跑完,容易卡死页面。

Fiber 让渲染能随时暂停。它用三个指针把树拉成链表。这样就能记住位置、下次接着走。React 还会备着两棵树。新内容在后台建好,再一次性换上去。

更新分两步:先算后改。第一步只算不改,被打断也不影响屏幕。第二步才真碰 DOM,这步不能停。useLayoutEffect 就在这儿同步跑完。

Diff 算法靠三个规则提速。只比同层、类型不同就重建、靠 key 认人。列表没 key,React 只能猜,容易误删重建。

Hooks 像一排固定衣帽钩。状态挂在 Fiber 上,每次按顺序取。所以 Hooks 不能在条件里写。setState 也只是排队,不会立刻改值。

Vue 是精确通知,React 是重新算一遍。两者路线不同,但都是为了高效更新界面。

原文React 源码剖析
上海,11小时前,

相关学习资料