Почему используешь иммутабельный подход в MobX

«Почему используешь иммутабельный подход в MobX» — вопрос из категории Библиотеки, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Иммутабельный подход в MobX помогает избежать неожиданных сайд-эффектов, упрощает отслеживание изменений и улучшает производительность. Хотя MobX по умолчанию мутабельный, иммутабельность делает код более предсказуемым, особенно в больших приложениях.

Пример с иммутабельностью:

class Store {
  @observable data = { items: [] };

  @action
  addItem(newItem) {
    this.data = { ...this.data, items: [...this.data.items, newItem] };
  }
}

Плюсы:

  • Легче тестировать (чистые функции)
  • Лучшая интеграция с React.memo
  • Предотвращает случайные изменения состояния
  • Упрощает отладку (можно логировать предыдущее/новое состояние)