我是apollo客户端的新手,我想替换vuex进行状态管理,同时要记住,像vuex一样,有什么方法可以集中处理突变和查询吗?我发现的大多数教程和文档都在每个组件中调用查询和变异,这可能会导致重复查询和变异,那么我该如何解决这个问题?
答案 0 :(得分:0)
您应使用相应的.js
或.ts
创建query
或mutation
文件。然后,如果您不想将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。