2026-08-08 10:09:21
SolidJS 之所以被称为“比 React 还 React”,是因为它在设计上吸收了 React 的核心思想,同时通过编译时优化、细粒度的响应式更新等机制,在性能与开发体验上实现了突破。 以下从编译时、运行时、响应原理三方面展开分析:
编译时:更彻底的优化,减少冗余代码体积优势:在业务代码体积小于 120KB 时,SolidJS 的编译后代码体积可能小于 React;在真实项目(>120KB)中,其体积比 Svelte 小约 25%,因祸得福地平衡了灵活性与优化深度。

触发事件 → 2. 更新状态 → 3. 调用 el.textContent = newCount,路径更短且无中间层。


Hooks 调用顺序固定:依赖数组的闭包问题源于 React 的状态更新机制,组件需按固定顺序调用 Hooks 以保证状态正确性。
全局更新流程:任何组件触发更新时,React 会重新构建整棵 Fiber 树,通过优化策略(如 PureComponent)跳过不必要的渲染。
状态原子性:状态间形成依赖图,修改一个状态会触发依赖它的其他状态更新。例如,createEffect 回调依赖 name 状态时,会自动订阅其变化。
精准更新:仅执行与变化状态相关的 DOM 操作,类似“指哪打哪”的画家模式,而非 React 的“拍照对比”模式。
无 Hooks 顺序限制,代码更灵活。
无 useEffect 闭包问题,状态变化直接触发回调。
支持现代前端特性(如 JSX、Suspense、Concurrent Rendering),与 React API 高度相似,降低迁移成本。
适用场景:对性能敏感的大型应用(如管理后台、数据可视化平台),或希望避免 React 限制(如 Hooks 顺序、闭包问题)的项目。若团队熟悉 React 生态,SolidJS 是一个值得尝试的“更 React 的框架”。