一个声明式 JavaScript UI 库,通过细粒度响应式直接更新真实 DOM,不使用 Virtual DOM。
Tencent/omi
Omi 是一个 Web Components 框架,支持 JSX、Signal 响应式、路由和 Tailwind,用于构建可复用的自定义元素。
- Star
- 13,276
- Fork
- 1,256
- 未关闭 Issue
- 68
- 最近提交
- 15天前
这是什么?
Omi 是一个用于构建 Web Components 的框架,基于浏览器原生的自定义元素标准。组件通过 @tag('counter-demo') 这样的装饰器定义,并使用 JSX 渲染,可以直接用于原生 HTML,也可以在 Vue、React 等能使用自定义元素的环境中引用。
状态管理基于 Signal 响应式机制(reactive-signal 包),修改信号值时只更新依赖它的界面部分。核心包还提供函数组件、Suspense、指令,并支持用 Constructable Stylesheets 管理和共享样式。可选包包括路由(omi-router)、表单方案(omi-form)以及一套 UI 组件和图标库。
项目通过 omi-cli 提供脚手架,可以快速创建 TypeScript 或 JavaScript 的 Vite 项目,也可以生成包含路由、Signal、Suspense 和 Tailwind CSS 的单页应用模板。仓库同时包含若干启动模板和示例应用,如贪吃蛇游戏。
核心功能
- 01通过 @tag 装饰器定义自定义元素,并使用 JSX 渲染。
- 02基于 Signal 的响应式机制,只更新依赖变化值的界面。
- 03核心框架内置函数组件、Suspense 和指令。
- 04支持 Constructable Stylesheets 管理和共享组件样式。
- 05提供路由、表单及 UI 组件等官方扩展包。
- 06通过 omi-cli 快速生成基于 Vite 的 TypeScript 或 JavaScript 项目。
适用场景
- 构建可在 Vue、React 或原生 HTML 中复用的 UI 组件。
- 借助官方模板快速搭建包含路由、Signal 和 Tailwind CSS 的单页应用。
- 使用 omi-form 包开发表单较多的界面。
快速上手
- 1
使用 npm 安装 omi 包
npm i omi - 2
创建一个 Omi + Vite + TS 项目
npx omi-cli init my-app - 3
进入项目文件夹
cd my-app - 4
启动开发服务器
npm start
使用前须知
- 仓库元数据未识别出许可证(NOASSERTION),但 README 标注为 MIT,使用前请先核对许可证文件。
标签
常见问题
- omi 是什么?
- Omi 是一个 Web Components 框架,支持 JSX、Signal 响应式、路由和 Tailwind,用于构建可复用的自定义元素。 Omi 是一个用于构建 Web Components 的框架,基于浏览器原生的自定义元素标准。组件通过 @tag('counter-demo') 这样的装饰器定义,并使用 JSX 渲染,可以直接用于原生 HTML,也可以在 Vue、React 等能使用自定义元素的环境中引用。
- omi 可以免费使用吗?用的什么许可证?
- omi 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- omi 还在维护吗?
- 活跃维护中。omi 最近一次提交是在 2026年10月10日。
- omi 适合用来做什么?
- 构建可在 Vue、React 或原生 HTML 中复用的 UI 组件。 借助官方模板快速搭建包含路由、Signal 和 Tailwind CSS 的单页应用。 使用 omi-form 包开发表单较多的界面。
- omi 怎么安装和运行?
- 使用 npm 安装 omi 包: npm i omi 创建一个 Omi + Vite + TS 项目: npx omi-cli init my-app 进入项目文件夹: cd my-app 启动开发服务器: npm start
- 在哪里获取 omi?
- 源代码和安装说明在 GitHub 上:https://github.com/Tencent/omi
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个约 4kB 的快速 React 替代库,保留相同的现代组件 API,基于 Virtual DOM。
基于原生 Web Components 构建的可定制音视频播放器控件,兼容任意 JavaScript 框架。
一个高性能、API 类似 React 的 JavaScript UI 库,支持客户端与服务端渲染。
微软的 Fluent UI 设计系统代码仓库,提供 React 组件、Web Components 和前端工具库。
用于构建交互式用户界面的 JavaScript 库,基于可组合的组件开发。