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

时间:2020-05-07 17:28:30

标签: vue.js graphql apollo-client vue-apollo

我是apollo客户端的新手,我想替换vuex进行状态管理,同时要记住,像vuex一样,有什么方法可以集中处理突变和查询吗?我发现的大多数教程和文档都在每个组件中调用查询和变异,这可能会导致重复查询和变异,那么我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您应使用相应的.js.ts创建querymutation文件。然后,如果您不想将state存储在 Apollo客户端状态管理系统中,则只需在 Vue.js 。我正在使用 React.js ,因此我要使用的是Context API,我相信您可以在 Vue.js 。

查看与{strong> React.js 类似的有关如何实现Context API的链接:

答案 1 :(得分:0)

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

Apollo不是本地的数据存储,而是一种访问远程数据的结构化方式。比起Vuex,它更能替代Axios。

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

(现在,如果数据经常更改(例如在聊天应用程序中),您可能 不希望仅依赖缓存的数据。这是您通过以下方式对查询做出的决定:查询依据。)

也就是说,我不会使用Apollo来存储要逐页携带的本地数据(例如电子商务购物车)。我会坚持使用Vuex。