解析器vs Redux

时间:2019-11-14 09:35:17

标签: angular redux angular-resolver angular-redux

我已经在Angular的中小型项目中工作了一段时间,只要有一些数据需要从服务器加载,团队就直接将其存储到Redux存储中。这样,当用户在“页面”之间导航以及他们决定刷新其页面时,就可以保留数据。

但是,最近我一直在做一个“正确的” Angular教程,我们设法通过结合服务(app.module.ts中提供)来保存数据和resolvers来达到相同的结果。解析器确保在加载我的主页时,所需的数据已加载到服务中。另外,如果数据不是太大,我什至可以将其存储到localStorage中,因此,如果数据不存在,则可以消除解析器中的HTTP请求。

除了不太可能的用例:1.需要加载大量数据,并且2.用户经常出于某种原因刷新网页,我真的不明白为什么我们应该实现完整的redux存储

使用Redux是否有更多我不了解的原因,或者使用此方法还有更多缺点?

1 个答案:

答案 0 :(得分:1)

This是来自redux的创建者的非常著名的文章。据说您可能不需要redux。

Angular是一个已知解决了数据间依赖问题的框架。如果事件和数据绑定的组件间通信对您有用,并且可以通过服务进行缓存并且没有引起以下问题,那么您应该坚持使用它们。

为什么?

  1. Redux对于大多数学习曲线陡峭的开发人员来说是违反直觉的
  2. 需要很多样板代码,如果您不需要它的折衷,那么您就不必理会它

一般而言,Redux和助焊剂被误解并以错误的方式广泛使用。 angular univercity中显示了何时需要使用redux的指示。几乎说了以下

  

反应组件按层次结构排列。大多数时候,   数据模型也遵循层次结构。在这种情况下,助焊剂不会   给你买很多。但是,有时您的数据模型不是分层的。   当您的React组件开始接收那种感觉的道具时   无关紧要的,或者您的组件数量很少   非常复杂,那么您可能需要研究Flux。

     

您有一条数据需要在以下多个位置使用   您的应用,并通过道具传递它,使您的组件破坏了   单一责任原则(即,使他们的界面减少   感)

     

有多个独立的参与者(通常是服务器和   最终用户)可能会对该数据进行突变

在任何其他情况下(并且在上述示例受限制的情况下),我都会选择不使用redux并使用开箱即用的Resolver,Guards和服务。