我们在当前项目中使用nularx和Angular2。基本上ngrx是Redux的反应式扩展。 ngrx提供单一的事实来源,数据可以从任何地方访问。
我们可以使用全局服务处理所有这些场景,但为什么要编写已经可用和测试的相同代码。
答案 0 :(得分:9)
当我遇到ngRx
时,我遇到了类似的问题。以简单的方式,根据我的理解:
使用ngRx
您基本上拥有州管理的标准机制。我们不必根据应用程序要求编写额外的代码来管理状态。
使用ngRx
插件,我们实际上可以时间旅行并检查with what all state changes have the application gone through
。 这是一个大拇指 ,因为它不是一件容易实现的事情。
遵循reducers
(纯函数)的标准惯例,states
(不可变)&商店基本上我们试图保护我们的应用程序免受任何不可预测的变化。我们还有effects
来处理某些情况。
它提供了一种标准做法,可以帮助整个社区保持同一页面。如果每个人都会自己编写global services
并完成ngRx
提供的大部分内容,那么新来者仍然很难。所以,这也是一个重要的观点。
ngRx
。有时它可能会使你的应用程序变得混乱。在你实现之前要考虑。答案 1 :(得分:2)
如今,订户模式越来越强大。您将通过ngrx在React和Angular中看到redux的成功。它们具有处理数据流的适当机制和管理代码的适当方法。您无需编写冗长的代码即可使用服务来回管理数据流,它们提供了所有预定义的熟函数和可使用的代码。
使用具有效果的ngrx和实体适配器使事情更加清晰。
但这取决于您的应用程序,有时它不必要地增加了应用程序的复杂性。 但是,如果您不能在客户端上管理状态,则应该这样做。
答案 2 :(得分:2)
我已经编写了一个库来将您从ngrx的地狱中解救出来。它称为RxCache。 ngrx是一种癌症,会使您的项目从内部腐烂。这是一个生产力小偷,它用疯狂的样板块污染了您的项目。
在处理React / Redux hell项目然后是Angular / ngrx hell项目之后,我决定编写自己的状态管理库。
看看RxCache,它使您可以观察到基于推送的数据流,并使您摆脱了ngrx的全部困扰。