MobX — это библиотека для управления состоянием приложения. В основе MobX лежат три концепции:
Состояние (State): данные, которые составляют состояние приложения. Объявляется как observable (наблюдаемое).
javascript
Производные данные (Derivations): данные, которые вычисляются на основе состояния. Автоматически обновляются при изменении состояния. Объявляются как computed (вычисляемые).
javascript
Действия (Actions): функции, которые изменяют состояние. Рекомендуется использовать для явного мутирования состояния. Объявляются как action.
javascript
MobX использует реактивную парадигму, автоматически отслеживая зависимости. При изменении наблюдаемого состояния, все зависящие производные данные и реакции (такие как рендеринг UI) автоматически обновляются.
Преимущества MobX:
Основные декораторы/утилиты в MobX:
| Название | Назначение |
|---|---|
observable | Определяет наблюдаемое состояние. |
computed | Определяет вычисляемые производные данные. |
action | Определяет действие, которое мутирует состояние. |
autorun | Создает реакцию, автоматически выполняющуюся при изменении наблюдаемых данных внутри нее. |
reaction | Создает реакцию с явным определением зависимостей и эффекта. |
when | Создает реакцию, которая выполняется один раз при выполнении определенного условия. |
Интеграция с React обычно происходит с помощью пакета mobx-react или mobx-react-lite, используя хуки (useObserver, useLocalStore) или компоненты-обертки (observer).
javascript
MobX подходит для приложений любого размера, от небольших виджетов до крупномасштабных энтерпрайз-решений.