Angularjs with redux

Angularjs with redux

本文关键字:redux with Angularjs      更新时间:2023-09-26

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

如果你有很多共享状态,Redux 对 Angular 1.x 有好处。在我使用的 Angular 应用程序中,我们有许多页面具有共享模型和几个组件,这些组件对该模型进行(重叠)更改。保持数据同步或采用标准方式进行更改并不总是那么容易。Redux 是一个很好的方法,尽管你当然可以使用 Angular 服务来实现类似的东西。Redux 使用的单向数据流(在我看来)比您通常在 Angular 中执行的操作更容易遵循。相反,引入 Redux 可能会损害您编写真正快速原型的能力,因为传递数据的工作要多一些。这对我来说并不重要,但对其他人来说可能很重要。

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

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

使用 Redux 意味着更少的代码以角度为中心。这意味着如果您决定不使用 Angular,您将拥有更简单的升级路径。或者即使您只想迁移到 Angular 2。不过,很难说容易多少。

我不认为有很多重叠,因为 Angular

更像是一个框架而不是一个库,但是 Redux 中有些东西你不能在 Angular 中充分利用。您可能确切地知道应用程序状态的哪个部分正在发生变化,但 Angular 无论如何都会运行其摘要周期并检查所有内容。不过,Angular 2在这方面更好。你将不得不跳过一些障碍,使你的所有指令都使用不可变的数据。特别是如果你想通过Redux存储发送用户更改的每个字段,因为ng-model想要改变你传递的属性。

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

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