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 в разработке.