Angular 2:服务和redux之间的区别

时间:2016-08-12 05:05:42

标签: javascript angular redux angular2-services ngrx

redux的需求是什么,因为我们也可以保存并从服务中获取数据,据我所知,我们也可以将数据保存并保存到服务中,其他组件可以使用这些服务。

3 个答案:

答案 0 :(得分:21)

您不需要redux,但您确实需要一种维持状态的方法。服务会做,但最后你会发送类似redux或ngrx商店的东西。

考虑挑战。您有异步进入的数据。你想要它反应。您想要进行错误处理。您希望在数据更新时拥有等待状态。您有级联方案,其中一个事件触发多个操作,每个操作都有自己的延迟和错误路径。

并且您想要设置一个可以在多个组件中使用的模式。

维克多·萨维金(Victor Savkin)有一种方法可以使用非常光滑的可观察物。 Ngrx有另一种方式。

我使用服务编写了一个中等复杂的组件。它运作正常。小时数将消失,以追踪状态未定义并引发错误的一些奇怪情况。我在杂草中得到了太多的东西,可以将某些东西作为一种模式重复使用。结果是脆弱和脆弱。它没有完全反应,并且证明它非常困难和耗时。我将它移植到ngrx,一旦学习曲线被克服,这不是一件容易的事,代码变得更简单,并且完全检测,允许快速调试。

因人而异。

Victor Savkin has an article on how to maintain state

答案 1 :(得分:2)

服务是Angular实现细节。而redux是一种建筑概念。这两者无法直接比较。

如果您对如何将redux应用于Angular感兴趣,我建议您阅读Comprehensive Introduction to @ngrx/store

答案 2 :(得分:0)

服务是Angular的一项功能,它允许用户管理其常用方法和属性。但是状态模式提供了管理我们的应用程序状态(在应用程序中通常使用的属性)的结构方式。

如果您有兴趣倾斜Angular状态模式,我建议您使用@ngrx/store && @ngxs/store。两者都会是一个好人。我建议使用ngxs,它比比较@ngrs/store的实现更为简单,并且要学习清晰的文档。