foundation

Observables

Помечайте состояние как observable, чтобы чтения отслеживались, а зависимые представления обновлялись автоматически.

Observables — реактивные свойства. `makeAutoObservable` помечает поля, геттеры и методы класса или объекта: чтения регистрируют зависимости, записи запускают обновления.

					import { makeAutoObservable } from 'mobx';

class TodoStore {
  items = [];
  constructor() {
    makeAutoObservable(this);
  }
  get openCount() {
    return this.items.filter((t) => !t.done).length;
  }
}
				

Массивы и map глубоко observable. Компоненты в `observer` ре-рендерятся только когда изменились observables, прочитанные во время render.

Компромисс: автоматическое отслеживание против непрозрачного графа зависимостей и слабее time-travel, чем у event log.

На интервью: что будет, если читать состояние вне `observer` или без tracking.

Типовые ошибки: spread observable в plain object (потеря реактивности), неверное оформление структур, неотслеживаемые мутации.

Чеклист:

  • makeAutoObservable / observable для моделей.
  • Читайте observables внутри observer render.
  • Не заменяйте observable-деревья клонами без нужды.
  • MobX devtools в разработке.