首页 > 解决方案 > 对何时使用 @client 指令以及访问 Apollo 缓存的不同方式感到困惑

问题描述

我已经创建了一个阿波罗服务器,现在正在处理前端的事情。我当前的堆栈是 Nuxtjs/Nuxt-apollo/Apollo-server,我选择使用 Apollo 的缓存而不是 vuex 来进行本地状态管理。

我已经能够连接到我制作的阿波罗服务器,在服务器上和通过缓存运行查询和突变。但是,我对何时应该使用@client指令感到非常困惑。我认为这更多是因为我无法看到更大的图景,所以我将分解我的思维过程。

1)您运行查询/突变,并将其放入浏览器缓存中。

2) 您现在可以从缓存中访问该查询/突变并运行它,而无需使用 client.readQuery 和 writeQuery 调用服务器。(在阅读官方文档时,我可能已经没有正确理解这一点。)

3)@client 指令用于管理状态,您可以将它放在要缓存的任何字段旁边。这也只涉及缓存和本地解析器。这些是自定义的吗?但根据我的经验,这似乎覆盖了缓存内的 ROOT_QUERY、ROOT_MUTATION?这似乎有点违反直觉?

为了使我的问题更加具体和不那么模糊,我应该什么时候使用 readQuery/writeQuery/readFragment/writeFragment 和 @client 指令如果可能尽可能外行?

标签: vue.jsgraphqlapolloapollo-clientgraphql-js

解决方案


推荐阅读