Выбор ответа Middle MVC, MVP, MVVM, MVI, VIPER обновлено

Однонаправленный поток данных в MVI

Вопрос

Что характерно для MVI?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Единое неизменяемое состояние, намерения (intents) и редьюсер: из состояния и намерения новое. MVI строится на однонаправленном потоке: действие → обработка → новое состояние → отрисовка.

Варианты ответа

  1. Единое неизменяемое состояние, намерения (intents) и редьюсер: из состояния и намерения новоеправильный ответ
  2. Несколько изменяемых свойств, которые view меняет напрямую, а модель только сохраняет их
  3. Двусторонний биндинг каждого поля между view и моделью, чтобы не писать обработчики
  4. Отсутствие состояния: каждое событие сразу рисует UI, и экран не хранит ничего между событиями

Разбор

MVI строится на однонаправленном потоке: действие → обработка → новое состояние → отрисовка. Состояние одно и неизменяемое, поэтому экран всегда описывается одним значением, его легко логировать и воспроизводить. Двусторонний биндинг и прямое изменение свойств ломают однонаправленность. Тот же принцип у TCA на iOS, Redux в React Native и BLoC во Flutter.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.