未设置发布日期1
从 setState 到像素:渲染管线与调度器的完整链路
导读里的 shouldYield 存在 vs 不存在,答案在这里。本篇追踪一次状态变更从触发到像素的完整路径——React 的 Fiber+Lanes+commit 三阶段、Vue 的微任务队列+Patch Flags、Solid 的同步 batch+直达 DOM。两条独立因果链:调度器解决 render 阶段不卡主线程,读写分离解决 commit 阶段不触发 forced layout。
分类归档
这个分类聚合了同一条编辑主线下的已发布文章。
导读里的 shouldYield 存在 vs 不存在,答案在这里。本篇追踪一次状态变更从触发到像素的完整路径——React 的 Fiber+Lanes+commit 三阶段、Vue 的微任务队列+Patch Flags、Solid 的同步 batch+直达 DOM。两条独立因果链:调度器解决 render 阶段不卡主线程,读写分离解决 commit 阶段不触发 forced layout。
总览篇用一张四分法表格定位了各框架的响应式粒度,本篇拆开每种追踪策略的内部机制——Vue 的 Proxy + Link 链表、Solid 的 Signal + swap-and-pop、Svelte 5 的编译期静态绑定、React 的无追踪模型,以及它们各自的依赖清理策略和原语组合规则。
同一个 TodoMVC 组件经过五种编译器后面目全非。本篇沿着 Parse→Transform→Codegen 三阶段管线,逐行拆解 Svelte、Solid、React Compiler、Qwik、Vue 的编译策略差异——消灭 diff、加速 diff、推迟加载,三种哲学的完整技术链路。