Ngxs - Позвоните в сервис Angular: хорошие практики? - PullRequest
0 голосов
/ 19 октября 2018

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

  • мой компонент вызывает службу, и служба отправляет действие с результатом в качестве полезной нагрузки?
  • мой компонент отправляет действие, а мой штат вызывает службу?

Ответы [ 3 ]

0 голосов
/ 22 октября 2018

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

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

0 голосов
/ 24 октября 2018

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

0 голосов
/ 19 октября 2018

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

До сих пор я лично (с 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

...