Что такое MobX?
Продвинутые темы
MobX — это библиотека управления состоянием, основанная на реактивности: при изменении наблюдаемых данных (observables) автоматически обновляются зависимые вычисления и UI.
Концепции
- Observable state — наблюдаемое состояние, за изменениями которого MobX следит.
- Actions — функции, изменяющие состояние.
- Computed — производные значения, кешируются и пересчитываются автоматически.
- Reactions/observer — компоненты-наблюдатели перерисовываются при изменении используемых данных.
import { makeAutoObservable } from 'mobx';
class Store {
count = 0;
constructor() { makeAutoObservable(this); }
increment() { this.count++; } // action
get double() { return this.count * 2; } // computed
}Компонент, обёрнутый в observer, автоматически перерисуется при изменении count.
Особенности
- Мутабельное состояние — меняется прямым присваиванием.
- Автоотслеживание зависимостей — MobX сам знает, что от чего зависит.
- Мало бойлерплейта — нет actions/reducers как в Redux.
MobX против Redux
- MobX — реактивный, мутабельный, мало кода, «магия».
- Redux — явный, иммутабельный, предсказуемый, больше кода, лучше отладка.
Коротко для собеседования
MobX — библиотека состояния на реактивности: observable-данные, actions (изменения), computed (производные), observer-компоненты (авто-перерисовка). Состояние мутабельное, зависимости отслеживаются автоматически, мало кода. В отличие от явного иммутабельного Redux.