【发布时间】:2018-07-08 02:50:18
【问题描述】:
我想知道两者之间的关系。我很困惑,因为我认为它们几乎都是管理状态的方式,而且似乎有重叠,所以我正在寻找一个我可以应用的概念区别,以便找出哪些信息可以保存在哪里以及如何使它们工作一起。有什么建议吗?
【问题讨论】:
标签: reactjs redux react-redux graphql flux
我想知道两者之间的关系。我很困惑,因为我认为它们几乎都是管理状态的方式,而且似乎有重叠,所以我正在寻找一个我可以应用的概念区别,以便找出哪些信息可以保存在哪里以及如何使它们工作一起。有什么建议吗?
【问题讨论】:
标签: reactjs redux react-redux graphql flux
您必须区分视图状态(例如搜索字段、弹出窗口、切换)和数据状态(例如远程 API)。而 Apollo 主要用于数据状态,而 Redux/MobX/React 的 Local State 在与 Apollo Client 结合使用时用于视图状态。如果不与 Apollo Client 一起使用,这些解决方案也可以用于远程数据状态。
如果您的应用程序是纯粹的远程数据驱动并使用 GraphQL 后端,Apollo Client 对于您的应用程序就足够了。
如果您的应用程序中有几个视图状态,请混合使用 React 的本地状态管理。
如果您有多个或多个视图状态,请使用 Redux 或 MobX 作为您的视图状态或尝试 apollo-link-state。
也许这篇文章更深入地澄清了一些事情:Combining Redux and Apollo。
意见:我觉得在 React Hooks 时代,Redux 和 MobX 的相关性越来越低。在这里,您可以找到有关all the state management options in React 的深入文章。
【讨论】:
【讨论】: