Декларативная JavaScript-библиотека для UI: компилирует JSX в обновления реального DOM и использует тонкозернистую реактивность вместо Virtual DOM.
Tencent/omi
Omi — фреймворк для Web Components с JSX, реактивностью на основе сигналов, роутером и поддержкой Tailwind для создания переиспользуемых пользовательских элементов.
- Звёзды
- 13,276
- Форки
- 1,256
- Открытые issues
- 68
- Последний коммит
- 15 дней назад
Что это?
Omi — фреймворк для создания Web Components — стандарта браузерных пользовательских элементов. Компоненты описываются с помощью декоратора, например @tag('counter-demo'), и рендерятся с помощью JSX, поэтому их можно использовать в обычном HTML, Vue, React и любых других средах, поддерживающих пользовательские элементы.
Состояние обрабатывает реактивная система на основе сигналов (пакет reactive-signal): при изменении значения сигнала обновляется только зависящий от него интерфейс. В ядро также входят функциональные компоненты, Suspense, директивы и Constructable Stylesheets для управления стилями. Дополнительные пакеты предоставляют роутер, решение для работы с формами (omi-form), а также набор UI-компонентов и иконок.
В проекте есть CLI для создания каркаса приложения — omi-cli — с шаблонами для TypeScript, JavaScript и SPA, куда входят Router, Signal, Suspense и Tailwind CSS. Репозиторий организован как монорепозиторий и содержит стартовые наборы и примеры приложений, например игры «змейка».
Ключевые возможности
- 01Создание пользовательских элементов с помощью декоратора @tag и их рендеринг с помощью JSX.
- 02Реактивность на основе сигналов: при изменении значений обновляется только зависящий от них интерфейс.
- 03В ядро фреймворка входят функциональные компоненты, Suspense и директивы.
- 04Constructable Stylesheets для управления стилями компонентов и их совместного использования.
- 05Официальные пакеты для роутинга, работы с формами и UI-компонентами.
- 06omi-cli создаёт проекты на основе Vite с TypeScript или JavaScript.
Сценарии использования
- Создание переиспользуемых UI-компонентов, работающих в Vue, React и обычном HTML.
- Создание одностраничных приложений с маршрутизацией, сигналами и Tailwind CSS на основе готовых шаблонов.
- Создание интерфейсов с большим количеством форм с помощью пакета omi-form.
Быстрый старт
- 1
Установите пакет omi с помощью npm
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, реактивностью на основе сигналов, роутером и поддержкой Tailwind для создания переиспользуемых пользовательских элементов. Omi — фреймворк для создания Web Components — стандарта браузерных пользовательских элементов. Компоненты описываются с помощью декоратора, например @tag('counter-demo'), и рендерятся с помощью JSX, поэтому их можно использовать в обычном HTML, Vue, React и любых других средах, поддерживающих пользовательские элементы.
- omi можно использовать бесплатно? Какая у него лицензия?
- omi распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- omi всё ещё поддерживается?
- Активно поддерживается. Последний коммит в omi — 10 окт. 2026 г..
- Для чего можно использовать omi?
- Создание переиспользуемых UI-компонентов, работающих в Vue, React и обычном HTML. Создание одностраничных приложений с маршрутизацией, сигналами и Tailwind CSS на основе готовых шаблонов. Создание интерфейсов с большим количеством форм с помощью пакета omi-form.
- Как установить omi?
- Установите пакет omi с помощью npm: npm i omi Создайте новый проект на Omi + Vite + TS: npx omi-cli init my-app Перейдите в папку проекта: cd my-app Запустите сервер разработки: npm start
- Где скачать omi?
- Исходный код и инструкции по установке — на GitHub: https://github.com/Tencent/omi
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Быстрая UI-библиотека размером около 4 КБ, совместимая с React и предлагающая тот же современный API компонентов на основе Virtual DOM.
Настраиваемые элементы управления аудио- и видеоплеером на нативных веб-компонентах, работающие с любым JavaScript-фреймворком.
Очень быстрая JavaScript-библиотека в духе React для создания высокопроизводительных интерфейсов на клиенте и сервере.
Монорепозиторий Microsoft с React-компонентами, веб-компонентами и утилитами для создания веб-приложений в дизайн-системе Fluent UI.
JavaScript-библиотека для создания интерактивных пользовательских интерфейсов из компонентов, работающих в вебе, на сервере и нативных платформах.