我如何用 apollo 客户端状态管理替换 vuex?

how can i replace vuex with apollo client state managment?

我是 apollo-client 的新手,我想用 vuex 代替状态管理,请记住,有什么方法可以像 vuex 一样以集中方式放置我的突变和查询吗?我发现的大多数教程和文档都在每个组件中调用查询和突变,这可能会导致重复查询和突变,那么我该如何解决这个问题?

您应该使用相应的 querymutation 创建 .js.ts 文件。那么,如果你不想在Apollo客户端状态管理系统中存储state,你可以直接在[=]中调用相应的状态管理服务即可。 =39=]。我正在使用 React.js,所以我会在我的案例中使用 Context API,我相信您可以为 [=23= 找到同样的东西]Vue.js.

查看有关如何实现 Context API 类似于 React.js:

的链接

所以,我没有大量的 Vuex 经验,但我有一个使用 Vue Apollo 的生产应用程序,这真的是一种不同的心态。

A​​pollo 不是本地 store 数据,它是一种访问 remote 数据的结构化方式。它更像是 Axios 的替代品,而不是 Vuex 的替代品。

对于 Apollo,重复查询并不是一件坏事,因为 Apollo 有一个非常聪明的 缓存 策略。您可以使用 fetchPolicy: 'cache-first' 调用查询来指示 Apollo 不要重新获取已获取的数据。

(现在,如果数据经常变化——比如在聊天应用程序中——你可能不想只想依赖缓存数据。这是你做出的决定逐个查询。)

也就是说,我 不会 使用 Apollo 来存储要在页面之间传输的本地数据(例如电子商务购物车)。为此,我会坚持使用 Vuex。