PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Что такое 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.

Другие вопросы раздела