JavaScript-библиотека для предсказуемого и удобного в поддержке управления глобальным состоянием в React и других библиотеках представления.
mobxjs/mobx
Простое и масштабируемое управление состоянием в приложениях на JavaScript и TypeScript с автоматическим отслеживанием зависимостей и оптимальным обновлением интерфейса.
- Звёзды
- 28,218
- Форки
- 1,810
- Открытые issues
- 18
- Последний коммит
- вчера
Что это?
MobX — библиотека для управления состоянием в JavaScript и TypeScript. Достаточно пометить данные как observable и изменять их обычными присваиваниями: во время выполнения MobX отслеживает, какие вычисления и компоненты интерфейса читают каждое значение, и повторно запускает только те из них, на которые повлияло изменение.
Состояние можно описывать обычными классами или объектами с помощью makeAutoObservable, а производные значения автоматически вычисляются на основе observable-состояния. Компоненты, обёрнутые в observer, например React-компоненты через mobx-react-lite, перерисовываются только при обновлении конкретных полей, которые они используют. Поэтому ручная мемоизация и селекторы, как правило, не нужны.
MobX не привязан к конкретному UI-фреймворку, поэтому логику состояния можно держать вне компонентов и тестировать отдельно. Документация проекта размещена на mobx.js.org.
Ключевые возможности
- 01Автоматически отслеживает во время выполнения, к какому состоянию обращается каждое вычисление или компонент.
- 02Позволяет менять состояние обычными присваиваниями JavaScript, в том числе в асинхронном коде.
- 03Автоматически вычисляет производные значения на основе observable-состояния без ручной настройки связей.
- 04Перерисовывает React-компоненты через observer только при изменении используемых ими полей.
- 05Не зависит от UI-фреймворка, поэтому состояние можно тестировать изолированно.
Сценарии использования
- Управление общим состоянием приложения во фронтенде на React с минимумом шаблонного кода.
- Создание состояния интерфейса, которое должно точно обновляться при изменении конкретных полей.
- Размещение бизнес-логики в обычных классах, не зависящих от слоя представления и удобных для модульного тестирования.
Быстрый старт
- 1
Прочитать документацию на mobx.js.org
- 2
Установить пакет mobx из npm
npm install mobx
В подборках
Темы
Частые вопросы
- Что такое mobx?
- Простое и масштабируемое управление состоянием в приложениях на JavaScript и TypeScript с автоматическим отслеживанием зависимостей и оптимальным обновлением интерфейса. MobX — библиотека для управления состоянием в JavaScript и TypeScript. Достаточно пометить данные как observable и изменять их обычными присваиваниями: во время выполнения MobX отслеживает, какие вычисления и компоненты интерфейса читают каждое значение, и повторно запускает только те из них, на которые повлияло изменение.
- mobx можно использовать бесплатно? Какая у него лицензия?
- mobx распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- mobx всё ещё поддерживается?
- Активно поддерживается. Последний коммит в mobx — 6 нояб. 2026 г..
- Для чего можно использовать mobx?
- Управление общим состоянием приложения во фронтенде на React с минимумом шаблонного кода. Создание состояния интерфейса, которое должно точно обновляться при изменении конкретных полей. Размещение бизнес-логики в обычных классах, не зависящих от слоя представления и удобных для модульного тестирования.
- Как установить mobx?
- Прочитать документацию на mobx.js.org Установить пакет mobx из npm: npm install mobx
- Где скачать mobx?
- Исходный код и инструкции по установке — на GitHub: https://github.com/mobxjs/mobx
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Небольшая библиотека управления состоянием для React на основе хуков, которой не нужны провайдеры.
Официальная библиотека для связи Redux с React: подключает хранилища Redux к компонентам React с помощью хуков и Provider.
Библиотека JavaScript/TypeScript без зависимостей для машин состояний, стейтчартов и акторов, помогающая управлять сложной логикой приложений и рабочих процессов.
Библиотека JavaScript для обновления неизменяемого состояния через мутацию черновой копии текущего состояния.
Библиотека для управления асинхронным состоянием и загрузки данных в веб-приложениях с поддержкой React, Vue, Svelte и Solid.