SolidJS 36,000 星背后:没有虚拟 DOM 的 UI 框架,在 2026 年还能打吗

SolidJS 在 GitHub 上已经积累了 36,007 颗星。但这个数字背后,有一个挺有意思的问题被问了六年:没有虚拟 DOM 的 UI 框架,真的能打过 React 吗?

SolidJS 的答案是:不仅能,还很快。

它的核心差异在哪里

大多数前端框架(包括 React)用的是虚拟 DOM——状态变时,重新算一棵虚拟树,再 Diff 出一批变更,最后应用到真实 DOM。SolidJS 不走这条路。它把 JSX 编译成真实的 DOM 节点和精确的更新函数,状态变化时,只有依赖这个状态的那一小块 DOM 会更新。

听起来像 Svelte?两者思路接近,但实现不同。Svelte 在编译时把更新代码写进组件,SolidJS 则把响应式系统留到运行时,用 Proxy 精确追踪依赖。实际表现上,SolidJS 在 js-framework-benchmark 中长期稳居第一梯队,2026 年的多项对比测试也显示它在大规模列表和实时协作场景中有明显优势。

Solid 2.0 RC:刚刚发布的大版本

2026 年 9 月 8 日,SolidJS 团队刚刚推送了 Solid 2.0 RC.7solid-js@2.0.0-rc.7)。这是 2.0 正式版前的第七个候选版本,距离上一个 RC 过去了大约三个月。

从官方博客 Solid 2.0 RC: The Big Reveal 透露的信息看,2.0 的核心变化包括:

  • 包结构重构@solidjs/web 独立为单独的包,solid-js 本身只保留核心响应式 API。stores 迁移到独立的 solid-js/store 包。
  • 新的乐观更新原语createOptimistic 等 API 专门针对需要即时反馈的交互场景(如聊天、评论、投票)设计。
  • 统一入口点:客户端和服务端的入口文件做了重新梳理,减少 tree-shaking 的摩擦。

2.0 也意味着 API 层面有一些破坏性变更,但官方提供了codemod 工具,过渡成本在可控范围内。

性能数据

SolidJS 的性能标签不是营销话术,是数据支撑的:

  • SvelteKit vs SolidJS 2026 性能对比 中,SolidJS 在页面初始加载和交互响应两个指标上均优于 SvelteKit。
  • SolidJS vs Svelte 5 对比 显示,在高频状态更新场景(如实时数据看板),SolidJS 的内存占用比 Svelte 5 低约 30%。
  • 官方 solidjs.com 的描述是:”Consistently tops recognized benchmarks for UI speed and memory utilization.”

适合谁,不适合谁

适合:

  • 对性能敏感的应用:电商详情页、实时协作工具、数据可视化仪表盘
  • 已经熟悉 React 概念的团队,转向 SolidJS 成本相对低(JSX 语法相近)
  • 需要 SSR 的项目:有 solid-start(类 Next.js 的元框架)可用

不适合:

  • 刚学前端的初学者:响应式系统的心智模型比 React 的”重新渲染”需要更多理解成本
  • 强依赖 React 生态(Redux生态、React Native 迁移)的团队
  • 需要超大规模社区插件支撑的项目——SolidJS 的插件生态和 React 不在一个量级

怎么上手

官方提供了 Playground,可以直接在浏览器里跑代码而不用装任何东西。如果你想从官方教程入手,Features Tutorial 是最系统的起点。

用 npm 起一个项目:

npx degit solidjs/templates/ts my-app
cd my-app
npm install
npm run dev

包发布在 npm 上,版本 solid-js@2.0.0-rc.7,可直接在现有 React 项目旁边做实验性引入。

社区现状

小结

SolidJS 不是 React 替代品,而是一个在特定维度(性能、包体积、响应式精度)有明确优势的选项。2.0 RC 的发布和包结构重构说明这个项目在往更成熟的方向走,而不是停留在”小众玩具”阶段。

如果你最近在做前端框架选型,或者对”没有虚拟 DOM 的响应式系统到底怎么工作”这个问题感兴趣,SolidJS 值得花一个下午认真看看。

链接汇总:

评论区

0 条评论

登录后可评论。