做可复用 Web Components:Lit 用极轻的基类,组件跨框架都能用

想在 React、Vue、Angular 之间复用同一套组件?Web Components 标准就是答案,而 Lit 是把这套标准写起来最省力的库。它用一个极小的基类加上响应式属性,让你用接近原生的方式封装组件,产物是标准自定义元素,任何框架都能直接消费。
它解决什么问题
多框架并存,同一套 UI 要在各处重写。
原生写 Web Components 样板代码多、响应迟钝。
想要框架无关、长期不被技术栈绑死的组件。
核心能力
| 能力 | 具体能做到什么 |
|---|---|
| Web Components | 产出标准自定义元素,跨框架直接复用 |
| 轻量基类 | 核心极小,运行时负担低 |
| 响应式属性 | 用装饰器声明属性,变化自动重渲染 |
| 模板语法 | 自带高效模板,差分更新性能好 |
| 框架无关 | React、Vue、Angular 都能消费同一组件 |
| 开源可查 | BSD 协议开源,源码公开易排查 |

它让「标准组件」写起来不再痛苦
原生 Web Components 要手动管生命周期、属性反射和模板更新,样板很多。Lit 在这些标准之上加了一层薄薄的基类:你继承 LitElement,用 @property 声明响应式属性、用 render 返回模板,剩下的脏检查、差分更新、属性到特性的映射它都包了。最终产出的仍是标准自定义元素,不依赖 Lit 也能跑。
它是通过 npm 安装的库,不是复制源码,也不是样式方案,所以外观要你自己写(原生 CSS 或别的方式)。因为它是标准组件,跨框架复用是最大卖点,但要注意 React 对自定义元素的事件与属性传递有些坑,接 React 时建议套一层包装。
同类工具怎么选
| 工具 | 授权 | 差别在哪 |
|---|---|---|
| Stencil | 开源免费 | 面向组件库的开源编译器,产出 Web Components。 |
| React | 开源免费 | 组件生态最大,但产物不跨框架直接复用。 |
| Vue | 开源免费 | 渐进式框架,组件复用主要限 Vue 生态内。 |
谁适合用
- 需要在多框架间复用组件的前端架构
- 想做长期不被框架绑死的组件库团队
- 喜欢标准、轻量、少依赖的开发者
怎么开始
- 用包管理器安装 lit。
- 继承 LitElement,用 @property 声明响应式属性。
- 在 render 里返回模板,用原生 CSS 写样式。
- 构建并注册自定义元素(customElements.define)。
- 在任意框架或原生页面里像普通标签一样使用。
常见问题
依赖 Tailwind 吗?
不依赖。Lit 只管组件逻辑,样式由你用原生 CSS 等方式写。
是装库还是复制源码?
是装库,通过 npm 引入,跟随依赖升级。
只能在某个框架里用吗?
不,它产出标准 Web Components,任何框架都能用。
能商用吗?
能。以 BSD-3-Clause 开源协议发布,可自由用于商业项目。
授权与合规
Lit 以 BSD-3-Clause 开源协议发布,源码公开,可自由用于商业与个人项目。 官网:lit.dev。
继续找同类资源
这条属于「设计素材」栏目,同栏目还有更多可直接使用的免费资源,可以在 设计素材全部资源 里按需翻阅。
相关资源
同栏目下这几条也常被一起翻到:
↓ 获取资源
点击按钮直接前往资源页面。