Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – 在角度2中使用存储(ngrx)有什么好处?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开展一个角度为1.x.x的项目,并虑将我的代码升级到角度2。

现在在我的项目中我有很多服务(工厂)用于处理数据,几乎将数据保存在js数组(缓存和存储)中,并通过使用下划线处理数据来处理这些数据。

我发现在使用Ngrx的angular2中有很多例子。

使用存储比较使用数据服务来处理数据有什么好处?

如果我有多种数据类型(库存,订单,客户…),我的应用程序是否需要多个存储?

我如何构建(设计)我的应用程序来处理这样的多种数据类型?

即使你的问题主要是基于意见的,我可以给你一些想法,为什么ngrx是一个不错的选择。尽管人们说,将所有应用程序的状态都放在一个对象(Single State TreE)中并不是个好主意。但是,在我看来,你的国家将会在那里。有了一个商店,它只是一次性发现,突变是明确的和跟踪的,散布在整个地方,并由组件本地维护。此外,您可以从应用程序中的商店中选择特定的属性,因此您只能选择您关心的数据。如果然后通过总是返回一个数组并使用Observables来在reducer中拥抱不变性,那么可以使用ChangeDetectionStrategy OnPush。 OnPush给你一个很好的性能提升。我们来看看从 docs官方角度看的下图:

您可以看到,Angular App是使用组件架构构建的,它会导致组件树。 OnPush在组件上意味着只有输入属性发生变化时,更改检测才会启动。例如,如果Child B为OnPush,Child A为Default,并且更改Child A内的某个内容,则Child B的更改检测器不会被触发,因为no输入属性已更改。但是,如果您更改Child B内的某些内容,则A将重新呈现,因为它具有认的更改检测器。

关于性能和单状态树。关于这个商店的另一个优点是,你可以真正地理解你的代码和状态的变化。所以大多数Angular 1.x应用程序的现实是范围汤。这是一张来自Lukas Ruebbelke的blog post的漂亮图案:

图片显示它相当不错。来自Tero Parviainen的另一位article谈到他如何通过禁止控制器来改进他的角色应用程序。这一切都涉及范围汤和管理不断变化的状态是一个困难的。 redux动机说如下see here

通过使用Ngrx / store,您可以实际解决这个问题,因为您将在应用程序中获得清晰的数据流。

由于ngrx受到redux的高度启发,我会说同样的main principles适用:

>真理的单一来源
>状态是只读的
>使用纯函数进行更改

所以,在我看来,最大的好处是,你可以轻松跟踪用户的互动和理由的状态变化,因为你派遣行动和领导永远在一个地方,而简单的模型,你必须找到所有参,看看什么变化什么和什么时候。

使用Ngrx / store还可以使用@L_403_7@查看调试状态容器并恢复更改。时间旅行,我猜,是redux的主要原因之一,如果你使用普通的旧机型,这很难。

已经提到的@muetzerich的可测性也是使用Ngrx / store的好处。减速器是纯功能,这些功能易于测试,因为它们采用输入并简单地返回输出,并且不依赖于功能外的属性,并且没有副作用,例如, http呼叫等

要跳到底线,我会说,不需要使用Ngrx / store来做任何这些事情,但是你会受到限制(上面提到的三个原则)的束缚,它们提供了一个共同的模式,带来了不错的收益。

你的问题:

如果我有多种数据类型(库存,订单,客户…),我的应用程序是否需要多个存储?

不,我不建议使用多个商店。

我如何构建(设计)我的应用程序来处理这样的多种数据类型?

也许这blog post由Tero Parviainen帮助您找出如何设计您的商店。他解释了如何为示例应用程序设计应用程序状态树。

大佬总结

以上是大佬教程为你收集整理的angularjs – 在角度2中使用存储(ngrx)有什么好处?全部内容,希望文章能够帮你解决angularjs – 在角度2中使用存储(ngrx)有什么好处?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。