2016-06-26 47 views
25

我已经阅读了基于redux和继电器的文章/文档数量,但我仍然对这两个库的不同之处感到困惑吗?
这两个库的优点和缺点是什么?
GraphQL在继电器中的确切作用是什么?
哪个库更适合企业数据驱动的应用程序,如CRM/ERP?之间的差异:Redux和继电器

回答

46

两者都是Flux实现,这是一个用于管理应用程序状态的Facebook框架。

  • 终极版:一般的JavaScript库,有助于在应用程序中处理状态管理。 Redux不依赖于反应,并且可以与任何库一起使用。 react-redux库用于 很容易与redux集成反应。在redux中,应用程序状态 位于单个存储中,每个组件都可以访问状态 ,并且还可以通过分派操作来更改状态。 Redux不会 处理取出盒子中的数据,尽管它可以手动完成: 只需创建一个操作,将数据从服务器提取到 存储区。

  • 继电器:由facebook创建的反应,也在内部使用。 Relay与Reduce类似,都使用一个 商店。主要区别在于,relay只管理源自服务器的状态 ,并且通过 GraphQL查询(用于读取数据)和突变(用于更改数据)使用对该状态的所有访问。 中继为您缓存数据并为您优化数据提取,到 只获取已更改的数据,仅此而已。 Relay还支持乐观更新,即在服务器的 结果到达之前更改状态。

GraphQL是一个Web服务框架和协议使用声明和组合的查询,解决问题就像在获取和取下,它被认为是一个有效的候选人,以取代REST。
GraphQL不依赖于中继,反过来,中继依赖于graphql。 Graphql可以以与其他数据读取完成相同的方式使用。

正如你所看到的,relay对redux的主要优点是数据读取已经被处理,并且非常优化。
另一方面,它不能管理客户端的特定状态,但这很少需要。另外,IMO Relay很难学习和实现,但最终结果更好,更优化,但对于小型应用程序,我会使用redux。

+0

:哪种库更适合企业数据驱动的应用程序,如CRM/ERP? –

+3

中继,因为它处理数据获取和管理的棘手部分。另外我会说接力已经在我的“企业”视图,而REDX打算更轻。虽然这些只是意见。 –

+0

@GershonPapi为小型应用程序,你会与继电器?我认为你的意思是减重。 – Timmerz