Должен ли ViewModel нести ответственность за события обновления/публикации?

Я изучаю шаблон MVVM-Coordinator, и один из них - вопросительный знак. ViewModel несет ответственность за получение и форматирование данных, которые View может взять и просто показать пользователю. Координатор управляет навигацией. Какая часть должна отвечать за события после/обновления, например. выполнение методов входа / регистрации API, выполнение запросов комментариев / лайков? Это также ответственность ViewModel или координатора?

В этой статье говорится, что координатор должен нести ответственность за навигацию и изменение модели: http://khanlou.com/2015/10/координаторы-редукс/

Но я нахожу примеры, когда ViewModel также выполняет мутацию.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
50
1

Ответы 1

Ну, я думаю, это немного субъективно, но я бы определенно сказал «Модель просмотра». Координатор используется для навигации, а модели — это просто объекты. И, как вы знаете, модель представления — это то, к чему принадлежит бизнес-логика.

В моем случае у меня есть выделенный уровень абстракции (служба), где я реализую каждую сетевую службу и запрос. Затем моя модель представления просто запрашивает данные и отправляет их в ViewController. Я делаю это, потому что в приложении с интенсивным использованием сети ваши модели представления будут иметь слишком много кода, а также потому, что просто представьте, что у вас есть одна модель представления для каждого контроллера представления, а затем вам нужно сделать один и тот же запрос в двух разных сценариях. Будете ли вы дважды создавать экземпляр одной и той же ViewModel для двух разных контроллеров представления?

Все немного субъективно, но по моему опыту, это лучший подход.

Надеюсь, это поможет.

Другие вопросы по теме