Angular2.0 +中的状态管理

时间:2017-10-11 04:28:42

标签: angular redux

我们正在开发一个应用程序,我们需要一些共享数据,例如在不同的组件模块中。

我们无法将其存储在本地或全球存储中作为其敏感信息,因此我们不希望用户可以打开开发人员工具并从中查看数据。

我已经探索过我们,了解我的是我们可以使用Redux或RXJS。

我试图通过redux实现它可以任何人帮助我如果我想在商店存储简单的用户名,国家和纬度以及如何使用它们需要做什么

3 个答案:

答案 0 :(得分:3)

是的,你的研究让你找到了理想的位置。但我会说你也可以使用其他方式。

关于Ngrx

首先是什么是Redux?

  

Redux是JavaScript应用程序的应用程序状态管理器   通过拥有一个来保持Flux架构的核心原则   应用程序中的单向数据流。 Redux应用程序有   只有一个全局的只读应用程序状态。计算此状态   通过"减少"在更新它的集合或动作流上   受控制的方式。

Redux In Angular?

  

Redux州的经理们受到了很好的欢迎并受到了启发   @ngrx的创建,一组实现相同方式的模块   管理状态以及中的一些中间件和工具   Redux生态系统。 @ngrx创建时专门用于   Angular和RxJS,因为它严重依赖于可观察的范例。都   您在上面看到的组件使用ngrx商店进行管理(更新为   v4)升级的优点现在我们支持延迟加载   直接在ngrx中使用特色模块

在哪里使用它?

  

一个小方案将使其使用非常清楚

     

我希望你可能已经正确使用了facebook:P所以如果你看@   Facebook的网站上你会看到多个组件,如navbar,left   面板,聊天室等。曾经想知道什么时候发送新邮件   你们所有这些都同时更新了吗?如果他们去了   srevices或事件发射器他们将被吞没在海洋中   意大利面条代码。即使实施也很难调试   或做出改变。

     

这里使用的是ngrx状态管理的所有信息   存储@一个地方,所有组件都被识别出来   数据状态已更改。从堆栈溢出看这个答案   将清除概念更清晰。

共享服务

共享服务只不过是ngrx的较小实现,并且基于Observables。我建议如果您的应用程序规模很大,那么请转到ngrx其他共享服务。

检查链接以获取更多相关信息以及如何使用它们。

答案 1 :(得分:2)

Redux在“Redux项目”意义上不适用于Angular。但是,Redux可以在很多方面用作模式 - 这是Redux最重要的部分。

<强> NGRX

一种方法是NgRx。该项目的灵感来自Redux模式,但实际上使用RxJ进行状态管理,因此它实际上可能是您正在寻找的 - 如果您正在寻找一个开箱即用的解决方案。除了状态管理,NgRx还提供开发工具和与路由器的集成。我可以在这里总结一下设置,但在@ngrx/store本身的自述文件中有一个非常明确的演练:https://github.com/ngrx/platform/blob/master/docs/store/README.md

单身人士服务

如果您不想添加依赖项,则可以使用单例服务。角度体系结构是以分层方式理解依赖注入的方式构建的。

只要服务由同一个注入器提供,服务就是单例;但是,您可以指示注射系统在逻辑组件树中向上查看,但根据您的问题,这可能对您正在查找的内容而言过于复杂。

提供应用程序范围的服务来存储用户数据的最简单方法可能是将服务声明为根注入器或应用程序注入器的提供者。一个常见的模式是这里看到的forRoot模式:https://angular.io/guide/ngmodule#configure-core-services-with-coremoduleforroot

希望这有帮助!

答案 2 :(得分:0)

看看Type-R Type-R

Type-R是现代JS数据框架,用于管理复杂的域和UI应用程序状态。它是JS和TS的可序列化类型系统。您使用Type-R模型描述的数据结构是自动的且无需费力:

  • 映射到JSON,以及可选的REST API
  • 防止运行时更新不当
  • 可观察到的