ngrx和ngxs之间的性能差异?

时间:2018-06-05 16:00:11

标签: angular redux ngrx ngxs

我想在我的Angular 6应用程序中使用ngxs进行状态管理。

但我不确定大项目是否成熟。

我找不到任何关于ngrx和ngxs之间性能差异的文章。 有人可以提供一些有关它的信息吗?

效果指标:从商店中获取大量商品并将其写回商店。

4 个答案:

答案 0 :(得分:11)

这是Reddit (Angular2+ community)的一个很好的答案。是来自同时测试了两者并切换到NGXS的开发人员。

  

我想分享我的经验。我们有一个中型企业   应用程式。我们从NGRX开始,但是很快就清楚了

     

NGRX代码很难理解并写给队友。

     

NGRX简直是地狱。您花了很多时间。

     

“效果”的概念很好,但只是增加了   复杂性可以简化。

     

开发人员体验(DX)令人震惊。

     

然后我们切换到NGXS。

     

具有最小的样板。您直接跳到“动作”:D。

     

我们为它的DX感到高兴。

     

对于队友来说,理解起来要容易得多,每个人都   突然变得富有成效。

     

有些折衷,例如服务器调用在减速器中,但是它   一段时间后可以使用。

     

插件!从日志记录到表单处理,都有大量的插件   (真棒)。

答案 1 :(得分:3)

根据我的经验,NGXS编写起来更简单,使用延迟加载状态也更容易。它具有如此简单的语法,它是OOP,而不是Redux FP范例。装饰您的操作和选择器,订阅已记录的状态,在任何地方捕获已调度的操作等。

但是,在存储插件方面我发现了一个陷阱,该插件本质上是针对脱机优先应用程序的。它使用限制为5MB的同步本地存储,并且在需要将大数据写入存储时将使UI停滞。但是,您可以在插件之上编写自定义存储解决方案。它具有可扩展性,可扩展性,您可以轻而易举地将util类注入,文档非常简单。

答案 2 :(得分:1)

我最近遇到了NGRX的问题,因为我必须分派两个操作,但是第二个操作取决于第一个操作的成功,问题在于Reducers异步运行,第二个操作未完成而第一个操作未完成,尝试使用效果解决它,但即使发生了同样的事情。有了NGXS,我可以解决它,因为Dispacher在操作结束时返回了一个可观察的对象。

总的来说,NGXS表现很好,性能非常相似,我不得不在具有多个嵌套级别的体系结构中更新大量数据,并且更新时间似乎没有差异。

答案 3 :(得分:-1)

你无法比较它们,就像比较苹果和橘子一样。

什么给你的印象是不成熟?它具有极好的文档记录,高测试覆盖率,活跃的社区和作者提供的专业支持。