繁体   English   中英

AngularJS与Redux

[英]Angularjs with redux

我一直在阅读Redux。 我读的大部分内容都是将redux与react结合在一起。 我使用Angularjs。 是否有充分的理由使用Redux而不是仅在angularjs范围内管理状态并允许angular管理绑定

如果您有很多共享状态,则Redux可以在Angular 1.x中受益。 在我使用的Angular应用程序中,我们有很多页面具有共享模型,并且有几个组件对该模型进行(重叠)更改。 保持数据同步或以标准的方式进行更改并不总是那么容易。 Redux是一种不错的方法,尽管您当然可以仅使用Angular服务来实现类似的操作。 (我认为)Redux使用的单向数据流比您通常在Angular中进行的跟踪更容易。 相反,引入Redux可能会损害您编写非常快速的原型的能力,因为还有很多工作需要传递数据。 这对我来说无关紧要,但对其他人可能很重要。

Redux的主要原则仍然适用于Angular应用程序:

  • 真理的单一来源(单个状态对象)。 就像我在上面说过的,我认为在单个位置管理状态要比在不同的Angular范围或服务中管理状态容易。 在某些应用程序中,范围汤是一个真正的问题。
  • 状态是一成不变的。 由于Angular(和Javascript)使数据更改变得非常容易,因此与Angular的大多数摩擦都来自这一方面。 但这确实可以帮助您编写更安全的代码。 由于只能通过创建副本来更改不可变对象,因此您可以更有信心在指令中执行的任何数据操作都不会破坏其他指令。 相反,您可以期望其他指令不会对您的数据进行修改。 所有这些修改都经过一个中心位置(单个状态对象,通过化简器),因此更容易找到它们。
  • 通过纯函数进行更改。 我认为这在任何JS应用程序中都很有用。 您拥有的代码越多,没有副作用或框架依赖性,则您的应用程序越容易理解和测试。 我们对Angular代码的许多测试都有许多应用程序设置样板。 相比之下,测试reducer非常简单,因为它只是Javascript函数。

使用Redux意味着更少的代码是以Angular为中心的。 这意味着,如果您决定不使用Angular,则升级路径会更轻松。 甚至即使您只想迁移到Angular 2,也很难说要容易得多。

我不认为Angular比框架更多的是框架而不是大量的重叠,但是Redux中的某些功能在Angular中无法充分利用。 您可能确切知道应用程序状态的哪一部分正在更改,但是Angular将运行其摘要周期并检查所有内容。 不过,在这方面,Angular 2更好。 您将不得不跳过一些难题,以使所有指令都适用于不可变数据。 尤其是如果您要发送每个字段,则用户会通过Redux存储进行更改,因为ng-model想要更改您传递的属性。

每个应用程序都是不同的,但是使用Redux在我开发的Angular应用程序类型中很有意义。

Redux可以与任何javascript技术一起使用。 总之,您可以将其集成到Agular项目中。 如今,它正在改变构建应用程序的方式。 它通过使用单向数据流提供了一种新的方式来构思应用程序。 结果,这使您可以更好地控制应用程序状态和工具来消除与数据可变性相关的问题。 看一下有关在Angular项目中使用Redux的精彩教程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM