我们是否应该在将React部分添加到现有AngularJs应用程序时添加Redux?

时间:2017-08-23 05:43:23

标签: angularjs reactjs react-redux

这个问题更多的是与代码相关的最佳实践,但我已经在网上搜索了一段时间而没有太大进展。

我们有一个现有的AngularJs(1.x)应用程序,我们正在尝试在其中添加简单的React组件。添加React不是问题。我想知道将Redux添加到这个是否有意义?我知道Redux是一个应用程序级别的状态组件,但由于我们只是在部分中添加React,在这种情况下使用Redux是不必要的过度杀伤?我提到Redux只是假设React组件的复杂性和数量可能会在未来增长。如果我们只需要添加一些简单的React组件,我就不会考虑Redux。

这是一个excellent post,它将React添加到Angular应用程序,但不是Redux。

2 个答案:

答案 0 :(得分:0)

我建议阅读丹·阿布拉莫夫(还是还原的创造者)的You might not need redux

本文的目的是仅在解决您遇到的问题时才使用Redux。我建议你实施反应组件,如果你开始遇到状态问题,请调查redux是否适合解决这些特定问题。

答案 1 :(得分:0)

首先,我还建议您阅读You might not need redux作为评论。

深入研究问题,重要的是要考虑什么是Redux,为什么我需要在应用程序中使用它。我会问自己一些问题:

  • 你的角应用程序中你的实际app状态在哪里?您是否正在使用与模型相关的范围,与数据集中的服务......?您打算将其迁移到Redux商店吗?
  • 您是否正在考虑将Redux与Angular一起使用,或仅用于新的React组件?您要传递给您的数据是否只通过React用于渲染的Redux React组件,还是会与其他Angular代码共享?
    • 如果要分享,您是否也会在Angular代码中使用Redux?如果没有,您是否必须在redux和角度状态之间手动同步数据?就个人而言,我不喜欢在redux商店中复制数据的想法,例如角度服务。
    • 如果您计划将Redux与Angular一起使用,那么像双向绑定这样的Angular功能会与类似Flux的架构冲突吗?你会尝试在角度代码中强制采用类似焊剂的设计吗?
  • 那些新的React组件是否共享状态?如果没有,那么这些组件中的任何一个国家是否足够复杂,难以管理只是解除状态?

我问所有这些问题,因为我试图找出问题,并考虑我使用Redux的原因:成为数据中的单一来源(对于整个应用程序或复杂的组件)。 基本上,Redux非常有助于在设计的几个部分之间保持状态同步。但是,如果您不需要保持组件同步,或者如果您的应用程序的其他部分(即现有的Angular代码)将破坏该设计,您将需要维护状态同步(在Redux存储和其他部分之间)应用程序)你自己,这可能是一个问题。

此外,关于您的一个问题:'假设React组件的复杂性和数量可能在未来增长'。如果您正在考虑反应组件的应用程序状态的复杂性,那么这可能是考虑Redux的原因。如果只是在组件数量方面的复杂性,我会考虑两次。

根据我的观点,当您在应用程序内部使用React进行隔离视图时,提升状态可能是一个非常有效的解决方案。如果数据和状态变得复杂,您会感觉到'需要一个更详细的解决方案。

很抱歉没有解决方案,只希望强调一些可以帮助您做出决定的问题:)