一个约 4kB 的快速 React 替代库,保留相同的现代组件 API,基于 Virtual DOM。
solidjs/solid
一个声明式 JavaScript UI 库,通过细粒度响应式直接更新真实 DOM,不使用 Virtual DOM。
- Star
- 36,172
- Fork
- 1,136
- 未关闭 Issue
- 36
- 最近提交
- 22小时前
这是什么?
Solid 是一个用于构建用户界面的 JavaScript 库。它不使用 Virtual DOM,而是把 JSX 模板编译成真实的 DOM 节点,状态变化时只重新执行依赖该状态的表达式。组件就是普通函数,只运行一次来搭建视图,后续更新由信号(signal)、派生值和副作用完成。
库内置了 Context 和 Stores 用于管理全局状态,并提供 Resources、Suspense 和并发渲染来处理服务端数据加载。同时支持带流式输出和渐进式水合的服务端渲染,还包括 Error Boundary 和 Portal。通过自定义渲染器,Solid 也可以运行在浏览器之外的环境中。
Solid 基于 JSX 和 TypeScript,并与 Vite 生态集成。由于它允许直接操作 DOM,可以方便地与 D3 等原生 JavaScript 库配合使用。浏览器支持覆盖近两年的主流桌面和移动端现代浏览器。
核心功能
- 01将 JSX 模板编译为真实 DOM 节点,实现细粒度更新
- 02通过响应式信号和派生值自动追踪依赖
- 03内置 Context 和 Stores,无需第三方库即可管理全局状态
- 04提供 Resources、Suspense 和并发渲染处理异步数据
- 05支持带流式输出和渐进式水合的服务端渲染
- 06支持创建自定义元素和自定义渲染器
适用场景
- 构建需要细粒度响应式的客户端单页应用
- 需要流式输出和渐进式水合的服务端渲染 Web 应用
- 开发可复用的 Web 组件或自定义元素
- 与 D3 等原生 JavaScript 库直接操作 DOM 的集成场景
快速上手
- 1
使用 degit 创建 JavaScript 应用
npx degit solidjs/templates/js my-app - 2
进入项目文件夹
cd my-app - 3
安装依赖
npm i - 4
启动开发服务器
npm run dev
标签
常见问题
- solid 是什么?
- 一个声明式 JavaScript UI 库,通过细粒度响应式直接更新真实 DOM,不使用 Virtual DOM。 Solid 是一个用于构建用户界面的 JavaScript 库。它不使用 Virtual DOM,而是把 JSX 模板编译成真实的 DOM 节点,状态变化时只重新执行依赖该状态的表达式。组件就是普通函数,只运行一次来搭建视图,后续更新由信号(signal)、派生值和副作用完成。
- solid 可以免费使用吗?用的什么许可证?
- solid 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- solid 还在维护吗?
- 活跃维护中。solid 最近一次提交是在 2026年10月24日。
- solid 适合用来做什么?
- 构建需要细粒度响应式的客户端单页应用 需要流式输出和渐进式水合的服务端渲染 Web 应用 开发可复用的 Web 组件或自定义元素 与 D3 等原生 JavaScript 库直接操作 DOM 的集成场景
- solid 怎么安装和运行?
- 使用 degit 创建 JavaScript 应用: npx degit solidjs/templates/js my-app 进入项目文件夹: cd my-app 安装依赖: npm i 启动开发服务器: npm run dev
- 在哪里获取 solid?
- 源代码和安装说明在 GitHub 上:https://github.com/solidjs/solid
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
Omi 是一个 Web Components 框架,支持 JSX、Signal 响应式、路由和 Tailwind,用于构建可复用的自定义元素。
用于构建交互式用户界面的 JavaScript 库,基于可组合的组件开发。
一个轻量精简的 JavaScript 框架,直接在 HTML 标记中添加响应式交互行为。
基于 Vue.js 的开源全栈框架,用于构建生产级 Web 应用和网站。
一个高性能、API 类似 React 的 JavaScript UI 库,支持客户端与服务端渲染。