Repolode
solidjs

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. 1

    使用 degit 创建 JavaScript 应用

    npx degit solidjs/templates/js my-app
  2. 2

    进入项目文件夹

    cd my-app
  3. 3

    安装依赖

    npm i
  4. 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 数据每日更新。

相关项目