搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

solidjs/solid

开发工具

把 JSX 编译成真实 DOM 并用细粒度响应式更新的 JavaScript UI 库。

36,282
1,153
TypeScript
MIT
创建于 8 年前

项目介绍

Solid 是一个用于构建用户界面的声明式 JavaScript/TypeScript 库。它不使用虚拟 DOM,而是把 JSX 模板编译成真实 DOM 节点,并通过细粒度响应式依赖更新:某个 signal 变化时,只重跑读取它的代码。组件就是普通函数,只在初始化视图时执行一次,因此 <div> 是真实的 div,可以直接用浏览器开发者工具检查。

它提供现代 UI 库常见的框架能力,包括 JSX 与 Fragment、Context、Store、配合 Suspense 和并发渲染的 Resource、流式 SSR、渐进式 hydration 以及 Error Boundary。组件可在客户端和服务端同构渲染,支持自定义渲染器,也可以用来编写 Web Component。

快速使用

用 degit 基于 Vite 创建最小客户端渲染应用,然后安装依赖并启动开发服务器:

npx degit solidjs/templates/js my-app
cd my-app
npm i
npm run dev

需要 TypeScript 时,把模板换成 npx degit solidjs/templates/ts my-app。Yarn 和 pnpm 同样可用。

在已有工程中通过 JSX 使用 Solid,需要安装 solid-js 和 Babel preset:

npm i -D babel-preset-solid
npm i solid-js

随后在 Babel 配置中加入 "presets": ["solid"];TypeScript 项目需在 compilerOptions 中设置 "jsx": "preserve" 和 "jsxImportSource": "solid-js"。README 没有给出模板之外完整的 Vite 或 webpack 配置,非模板方式请以官方文档为准。最小示例基于 createSignal 和 render,可以在 playground 中直接运行,无需本地安装。

使用约束

SolidJS Core 支持最近两年的主流桌面与移动浏览器:Firefox、Safari、Chrome 和 Edge,不支持 IE 及同类已停止维护的浏览器。服务端环境支持 Node LTS 以及最新版 Deno 和 Cloudflare Worker 运行时。使用 JSX 依赖 Babel preset,TypeScript 项目必须把 jsxImportSource 指向 solid-js。项目采用 MIT 许可证。

HotRepo 点评

2026-11-06 的 TypeScript 日榜记录了 36,258 个 Star 和 139 个新增 Star,当日最好名次为第 3;已收集的数据中没有该仓库的全部语言日榜名次。Hacker News 上的讨论集中在版本发布:2026 年 8 月的 2.0 RC 帖子获得 10 分、没有评论,2026 年 3 月的 2.0 beta 帖子有一条评论,提到一等公民的异步能力、createOptimistic 和 createOptimisticStore 等乐观更新原语,以及更可预测的调度器。这些属于发布消息和读者概述,不是独立基准测试。能观察到的是:一个成熟的 1.x 库正在推进 2.0 预发布,而该快照的日榜数据说明它仍有持续关注度。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

Solid 2.0 RC: The Big <Reveal>
▲ 10 · 0 条评论 · 2026年8月13日
Solid 1.6 – Castle in the Sky
▲ 4 · 0 条评论 · 2022年10月20日
Solidjs releases 2.0 beta – The <Suspense> is Over
▲ 3 · 1 条评论 · 2026年3月4日