什么是角度的国家管理?我为什么要用呢?

ac1*_*184 12 state-management typescript angular6 ngxs

我是Angular的新手,这个问题可能非常广泛.但我有兴趣了解有关国家管理使用情况的更多信息.最近我们的一个项目使用NGXS库实现了状态管理.但是,我试图了解它为应用带来的所有优势是什么?

实现非常深入,在高层次上,有一些操作将应用程序数据(由用户设置)和侦听器传递给那些处理请求并根据需要调度到下一步骤的操作.从一般的角度应用来看,这在应用程序使用或性能等方面有何不同.我正处于理解状态管理的初级阶段,所以我觉得我写的代码太多了,可能并不是真正需要的.示例 - 只是为了路由到另一个页面,我必须实现一个状态模式来保存对象并声明一个动作和一个监听器来实现该动作.

我正在阅读几份文件并获得有关如何实施国家管理的详细信息,但没有得到正确解决为什么要实施州管理的答案.

先感谢您!

Eli*_*hen 17

首先,要回答您的问题,您应该知道State Management不是Angular的术语,您不必使用它.状态管理是实现CQRS原则的模式,我引用维基百科:

它声明每个方法应该是执行操作的命令,或者是将数据返回给调用者的查询,而不是两者.

状态管理是您应用程序的单一事实来源.

您可以在没有状态管理的情况下构建应用 你只能使用服务,而且你很高兴.将状态管理添加到您的应用程序会增加一些复杂性和样板,但是您将获得(引用自/sf/answers/617469891/)的好处:

  1. 大型团队 - 如果您选择了CQRS架构,则可以轻松地在人与人之间拆分开发任务.您的顶级人员可以处理域逻辑,将常规内容留给技能较低的开发人员.
  2. 困难的业务逻辑 - CQRS迫使您避免混合域逻辑和基础架构操作.
  3. 可伸缩性很重要 - 使用CQRS可以实现出色的读写性能,命令处理可以在多个节点上扩展,并且查询是只读操作,可以对它们进行优化以执行快速读取操作.

最受欢迎的Angular的State Management库是NGRXNGXS.

我不会详细介绍NGRX,但简而言之 - 它已在实际生产应用程序中得到证明.

然而,NGXS是一个年轻的角度状态管理库,采用了NGRX的一些想法,并通过使用Angular提供的工具(如DI)"授权"它.NGRX和NGXS之间的主要区别在于您的样板在NGXS上显着减少.如果您有兴趣,可以阅读为什么另一个国家管理Angular的主要原因.

总而言之 - 如果您计划构建一个大型应用程序,那么您应该考虑使用状态管理,尽管 - 您不必这样做.

  • 这是一个非常好的答案。完整总结 (Y) ty (2认同)