当由于双向数据绑定导致数据始终同步时,在 Angular 中使用 NgRx 的原因是什么?

use*_*912 5 redux ngrx react-redux angular

NgRx 是 Redux for React 的 Angular 版本,用于状态管理。在 React 中,状态管理可能会变得复杂,Redux 可以提供帮助。对于 Angular,情况不应该是这样,因为由于双向数据绑定,所有内容都是同步的。

然而,我看到很多项目都在使用 NgRx。

为什么会这样呢?

Pre*_*nto 11

两种方式绑定和状态管理是完全不同的概念。

考虑这个例子。

假设您有一个 Web 应用程序,您在多个位置使用登录用户的名称。您不必每次都从服务器查询名称,而是将其放入 NgRx 存储中并从那里查询。这样您就可以节省从服务器获取数据的时间和资源。这与双向绑定无关。

这是一个非常简单的示例,不保证 NgRx。但让我们用我们现有的东西来玩吧。

我们可以通过注入一个服务和一个可观察对象来做到这一点吗?我们当然可以。

但是除了向后端发出 get rest 调用之外,您的服务还需要维护状态。考虑到数据也是从多个数据源异步传入的。假设您希望在名称更新时进行一些错误处理。假设更新名称触发多个异步操作,每个操作都有自己的延迟和错误处理。假设多个组件使用状态值。当然,您可以使用服务和可观察量来编写所有这些内容。最后,您的代码可能看起来与使用 Redux 类似。


小智 5

NgRx 代表Angular Reactive Extensions。简而言之,它是一个基于Redux模式的状态管理系统。这将帮助您在更大的角度应用程序中管理应用程序状态。

它将按预期工作,因为所有组件都可以从特定服务获取或设置所需的数据。但是,实际的问题是,如果我们刷新页面,我们将丢失存储在角度服务中的应用程序状态

因此,如果我们使用角度服务来保存应用程序状态,则有必要使用后端来保存应用程序状态。然后,当页面再次重新加载时,我们应该从后端获取状态(持久状态)。

众所周知,状态不仅仅是用户数据,它会决定屏幕上应该显示什么。对于较小的应用程序,使用组件和服务进行应用程序状态管理是很好的。但是,当我们的应用程序变得复杂且庞大时,管理应用程序状态将变得困难。

Redux 是一种状态管理模式,也是一个将该模式实现到任何应用程序中的库。

使用 Redux 模式管理状态的主要思想是,我们有一个中央存储来保存所有应用程序的状态。

我们可以将这个存储视为一个大型 JavaScript 对象,它保存了我们应用程序所需的不同部分的所有数据。

我们的组件和服务可以相互通信。但他们从这个中央存储接收他们的状态。

我们可以说存储是管理整个应用程序状态的单一事实来源。

欲了解更多信息,请点击此处

参考:https://www.c-sharpcorner.com/article/state-management-in-angular-using-ngrx/

  • 这没有道理。NgRx 状态只是另一个 Javascript 对象。如果重新加载页面,Javascript 对象就会被破坏。 (2认同)