Ngxs - вызов службы Angular: передовой опыт?

Когда я использую ngxs, что должно делать мое приложение:

  • мой компонент вызывает службу, и служба отправляет действие с результат как полезная нагрузка?
  • мой компонент отправляет действие, а мой Государство вызывает службу?
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
5
0
2 612
3

Ответы 3

Вы можете сделать и то, и другое, и если вы посмотрите на приложения с открытым исходным кодом, вы, вероятно, найдете и то, и другое.

До сих пор я лично (с ngrx, но это то же самое) вводил хранилище и отправлял действия из (умных) компонентов.

Но в последнее время я читал много статей о facades, и я думаю, что это действительно правильный способ сделать ваши компоненты как можно более простыми, но особенно упростить тестирование.

Подробнее о фасадах можно прочитать здесь:
https://medium.com/@thomasburleson_11450/ngrx-facades-better-state-management-82a04b9a1e39

https://medium.com/default-to-open/understanding-a-large-scale-angular-app-with-ngrx-80f9fc5660cc

https://blog.nrwl.io/nrwl-nx-6-2-angular-6-1-and-better-state-management-e139da2cd074

Как уже говорилось, вы можете сделать и то, и другое - вот более ранний вопрос, который я опубликовал с ответом от одной из команды NGXS.

В нашем проекте мы следовали этому шаблону, отправили действие, чтобы обработчик действия состояния вызывал службу, а затем исправлял состояние результатом. И при необходимости отправьте дальнейшие действия, чтобы указать на успех или неудачу.

Я считаю, что Dispatched Action должен быть неизменным и не должен использоваться для возврата результата. Вместо этого клиент, заинтересованный в получении результата (обычно в изменении состояния, вызванном действием), должен подписаться на изменение состояния. Обратите внимание, что NGXS - это реализация CQRS.

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