Небольшая библиотека управления состоянием для React на основе хуков, которой не нужны провайдеры.
- Звёзды
- 30,412
- Форки
- 1,410
- Открытые issues
- 123
- Последний коммит
- 11 часов назад
Что это?
XState — библиотека для управления состоянием и оркестрации в JavaScript и TypeScript, подходящая как для фронтенда, так и для бэкенда. Она описывает логику приложения с помощью машин состояний, стейтчартов и акторов: переходы, побочные эффекты и допустимые события задаются явно, а не разбросаны по условным конструкциям.
Основной пакет xstate предоставляет определения машин, акторов, которые выполняют логику машин и передают подписчикам снимки состояния, а также поддержку иерархических, параллельных и исторических состояний. Stately Studio — визуальный редактор для проектирования машин и экспорта в XState v5. Дополнительные пакеты добавляют интеграции с React, Vue, Svelte и Solid.
Для более простых задач предназначен отдельный пакет @xstate/store: компактное хранилище на основе событий с реактивными атомами и точным выводом типов в TypeScript. Оно работает как с основной библиотекой, так и без неё.
Ключевые возможности
- 01Определение машин состояний и стейтчартов с иерархическими, параллельными и историческими состояниями.
- 02Запуск логики в виде акторов, передающих подписчикам снимки состояния.
- 03Нет зависимостей во время выполнения.
- 04Визуальное проектирование и экспорт через Stately Studio.
- 05Интеграции с React, Vue, Svelte и Solid.
- 06Отдельный компактный пакет @xstate/store для управления состоянием на основе событий.
Сценарии использования
- Управление многоэтапными сценариями интерфейса, например формами, пошаговыми мастерами и оформлением заказа.
- Оркестрация длительных рабочих процессов на бэкенде и фоновых задач.
- Явное описание и тестирование сложных переходов состояния компонентов.
- Использование небольшого хранилища на основе событий как альтернативы Redux или Zustand.
Быстрый старт
- 1
Установите пакет xstate с помощью npm
npm install xstate
В подборках
Темы
Частые вопросы
- Что такое xstate?
- Библиотека JavaScript/TypeScript без зависимостей для машин состояний, стейтчартов и акторов, помогающая управлять сложной логикой приложений и рабочих процессов. XState — библиотека для управления состоянием и оркестрации в JavaScript и TypeScript, подходящая как для фронтенда, так и для бэкенда. Она описывает логику приложения с помощью машин состояний, стейтчартов и акторов: переходы, побочные эффекты и допустимые события задаются явно, а не разбросаны по условным конструкциям.
- xstate можно использовать бесплатно? Какая у него лицензия?
- xstate распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- xstate всё ещё поддерживается?
- Активно поддерживается. Последний коммит в xstate — 6 нояб. 2026 г..
- Для чего можно использовать xstate?
- Управление многоэтапными сценариями интерфейса, например формами, пошаговыми мастерами и оформлением заказа. Оркестрация длительных рабочих процессов на бэкенде и фоновых задач. Явное описание и тестирование сложных переходов состояния компонентов. Использование небольшого хранилища на основе событий как альтернативы Redux или Zustand.
- Как установить xstate?
- Установите пакет xstate с помощью npm: npm install xstate
- Где скачать xstate?
- Исходный код и инструкции по установке — на GitHub: https://github.com/statelyai/xstate
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
JavaScript-библиотека для предсказуемого и удобного в поддержке управления глобальным состоянием в React и других библиотеках представления.
Простое и масштабируемое управление состоянием в приложениях на JavaScript и TypeScript с автоматическим отслеживанием зависимостей и оптимальным обновлением интерфейса.
Официальная библиотека для связи Redux с React: подключает хранилища Redux к компонентам React с помощью хуков и Provider.
Инженерный процесс с проверкой доказательств, который через машину состояний на TypeScript, CLI и MCP-сервер последовательно проводит через пять фаз SPARC: Specification, Pseudocode, Architecture, Refinement и Completion.
Библиотека Python для создания приложений с принятием решений — например, чат-ботов и агентов — в виде конечных автоматов с встроенным UI для трассировки и мониторинга.