Ngxs-呼叫Angular服务:良好做法?

Vin*_*bet 5 redux angular ngxs

当我使用ngxs我的应用程序应该做什么时:

  • 我的组件调用服务,并且该服务调度一个操作,其结果为有效载荷?
  • 我的组件派遣了一项行动,而我所在的州致电了该服务?

小智 6

我的观点是,Dispatched Action 本身应该是不可变的,并且不用于返回结果。相反,有兴趣了解结果(通常是由操作引起的状态更改)的客户端应该订阅状态更改。请注意,NGXS 是 CQRS 实现。


max*_*992 4

您可以两者都做,如果您研究开源应用程序,您可能会发现两者。

到目前为止,我已经亲自(使用 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