Ответ
Иммутабельный подход в MobX помогает избежать неожиданных сайд-эффектов, упрощает отслеживание изменений и улучшает производительность. Хотя MobX по умолчанию мутабельный, иммутабельность делает код более предсказуемым, особенно в больших приложениях.
Пример с иммутабельностью:
class Store {
@observable data = { items: [] };
@action
addItem(newItem) {
this.data = { ...this.data, items: [...this.data.items, newItem] };
}
}
Плюсы:
- Легче тестировать (чистые функции)
- Лучшая интеграция с React.memo
- Предотвращает случайные изменения состояния
- Упрощает отладку (можно логировать предыдущее/новое состояние)