我想知道两者之间的关系。我很困惑,因为我认为它们都是管理状态的方法,而且似乎有重叠,所以我正在寻求一个概念上的区别,我可以应用以找出哪些信息可以保留在哪里以及如何使它们工作一起。有什么建议吗?
答案 0 :(得分:11)
您必须区分视图状态(例如搜索字段,弹出窗口,切换)和数据状态(例如远程API)。 Apollo主要用于数据状态,而Redux / MobX / React的本地状态在与Apollo Client结合使用时用于视图状态。如果不与Apollo Client一起使用,这些解决方案也可用于远程数据状态。但是,Apollo Client引入了apollo-link-state,它也可以用于本地视图状态。
如果您的应用程序纯粹是远程数据驱动并使用GraphQL后端,则Apollo Client就足以满足您的应用程序。
如果您的应用程序中有一些视图状态,请混合使用React的本地状态管理。
如果您有多个视图状态,请使用Redux或MobX作为视图状态或尝试apollo-link-state。
也许这篇文章更深入地阐明了一些事情:Combining Redux and Apollo。
答案 1 :(得分:5)