Tencent /omi

Web Components Framework - Web组件框架

★ 13,280⑂ 1,256👁 340⑃ 630● 356▤ 165
TypeScriptCreated 2015-05-31omi.cdn-go.cn/
13,280
stars
+0+2+7
1,256
forks
340
watchers
630
prs
356
issues
165
releases
–
discussions

README

English | 简体中文 


Omi - Web Components 框架

- 📶 信号 Signal 驱动的响应式编程,reactive-signal强力驱动
- 🧱 TDesign Web 组件 & OMI 游乐场
- ⚡ 微小的尺寸,极速的性能
- 💗 目标 100+ 模板 & OMI 模板源码
- 🐲 OMI Form & OMI Form 游乐场 & Lucide Omi 图标
- 🌐 你要的一切都有: Web Components, JSX, Function Components, Router, Suspense, Directive, Tailwindcss...
- 💒 使用 Constructable Stylesheets 轻松管理和共享样式

tsx
import { render, signal, tag, Component, h } from 'omi'

const count = signal(0)

function add() {
  count.value++
}

function sub() {
  count.value--
}

@tag('counter-demo')
export class CounterDemo extends Component {
  static css = 'span { color: red; }'

  render() {
    return (
      <
        -
        {count.value}
        +
      
    )
  }
}


使用该组件:

tsx
import { h } from 'omi'
import './counter-demo'

render(, document.body)

// 或者
import { CounterDemo, Other } from './counter-demo'
// 当需要导入其他东西的时候,防止被 tree shaking
render(, document.body)

// 或者
document.body.appendChild(document.createElement('counter-demo'))


 安装

bash
npm i omi


快速创建 Omi + Vite + TS/JS 项目:

bash
$ npx omi-cli init my-app     或者创建js项目: npx omi-cli init-js my-app
$ cd my-app           
$ npm start            develop
$ npm run build        release


快速创建 Omi + Router + Signal + Suspense + Tailwindcss + Vite + TS 项目:

bash
$ npx omi-cli init-spa my-app  
$ cd my-app           
$ npm start            develop
$ npm run build        release


 包

- 核心包
  - omi - Omi 框架的实现代码。
  - omi-form - 强大易用且跨框架的表单解决方案。
  - lucide-omi - Lucide 的 Omi 图标集合。
  - omiu - 希望打造最好的 web 组件。
  - omi-router - 创建单页应用。
  - omi-cli - 快速创建 Omi + Vite + TS/JS 项目。
- 入门套件 (未发布到 npm)
  - omi-elements - 官方推出 Tailwind Omi 套件。
  - omi-starter-spa - 快速创建单页应用(SPA),内置了 Omi + OmiRouter + Tailwindcss + TypeScript + Vite + Prettier。
  - omi-starter-ts - 基于 Vite + Omi + TypeScript 的模板。
  - omi-starter-tailwind - 基于 Vite + Omi + TypeScript + Tailwindcss 的模板。
  - omi-starter-js - 基于 Vite + Omi + JavaScript 的模板。
  - omi-vue - Vue SFC + Vite + OMI + OMI-WeUI.
- 组件
  - omi-weui - Omi 版本的 WeUI。
  - omi-auto-animate - Omi 版本的 @formkit/auto-animate。
  - omi-suspense - 处理异步依赖。
- 指令  
  - omi-transition - 提供进入和离开动画。
  - omi-ripple - 用于为用户界面元素添加涟漪(ripple)效果。当用户与元素交互(例如点击按钮)时,涟漪效果会从交互点开始扩散开来。
- 综合性例子 (未发布到 npm)
  - snake-game-2tier - 基于 Omi Signal class 两层架构的贪吃蛇游戏。
  - snake-game-3tier - 基于 Omi 响应是函数三层架构的贪吃蛇游戏。
  - omi-tutorial - Omi 官方教程源代码。

如果你想帮助项目发展,可以先简单地与同行分享!

- Share via Dev.to%20Github%3A%5Bhttps%3A%2F%2Fgithub.com%2FTencent%2Fomi%5D(https%3A%2F%2Fgithub.com%2FTencent%2Fomi)%0A-%20%F0%9F%93%B6%20Signal-driven%20reactive%20programming%0A-%20%F0%9F%8E%89%20%5BTailwind%20Element%20Omi%20UI%20KIT%5D(https%3A%2F%2Fomi.cdn-go.cn%2Felements%2Flatest%2F)%0A-%20%E2%9A%A1%20Tiny%20size%2C%20Fast%20performance%0A-%20%F0%9F%8C%90%20Everything%20you%20need%3A%20Web%20Components%2C%20JSX%2C%20Router%2C%20Suspense%2C%20Directive%2C%20Tailwindcss...%0A-%20%F0%9F%92%AF%20Both%20object%20oriented%20programming(OOP)%20and%20data%20oriented%20programming(DOP)%20are%20supported%0A-%20%F0%9F%92

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON