Выбор ответа Middle MVC, MVP, MVVM, MVI, VIPER обновлено
Однонаправленный поток данных в MVI
Вопрос
Что характерно для MVI?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Единое неизменяемое состояние, намерения (intents) и редьюсер: из состояния и намерения новое. MVI строится на однонаправленном потоке: действие → обработка → новое состояние → отрисовка.
Варианты ответа
- Единое неизменяемое состояние, намерения (intents) и редьюсер: из состояния и намерения новоеправильный ответ
- Несколько изменяемых свойств, которые view меняет напрямую, а модель только сохраняет их
- Двусторонний биндинг каждого поля между view и моделью, чтобы не писать обработчики
- Отсутствие состояния: каждое событие сразу рисует UI, и экран не хранит ничего между событиями
Разбор
MVI строится на однонаправленном потоке: действие → обработка → новое состояние → отрисовка. Состояние одно и неизменяемое, поэтому экран всегда описывается одним значением, его легко логировать и воспроизводить. Двусторонний биндинг и прямое изменение свойств ломают однонаправленность. Тот же принцип у TCA на iOS, Redux в React Native и BLoC во Flutter.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «MVC, MVP, MVVM, MVI, VIPER»
- Выбор паттерна для небольшого приложения
- MVC, MVP, MVVM, MVI, VIPER коротко
- TCA, BLoC, Redux: общий принцип
- Что такое UDF
- Почему MVC в iOS называют Massive View Controller
- Суть MVVM
- Одноразовые события во view model
- Код-ревью: view model экрана заказа (Kotlin)