vue.js - 对何时使用 @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 指令。如果可能尽可能外行?
解决方案
推荐阅读
- server - 地址已与 redis-server 一起使用
- hibernate - 如何添加带有继承 SINGLE_TABLE 的 oneToMany 映射
- swift - 如何访问命中测试的索引?
- vue.js - 导入引导错误:意外的令牌,test-utils,在一个测试中工作,但不是另一个
- r - 传递函数时“选择了未定义的列”
- bash - Bash 地图没有给出正确的结果
- javascript - 如何在 Mapbox 中显示选定区域的建筑物
- ios - 我应该将什么传递给 .success() 以获取 `Result
`? - javascript - 设置innerHTML之间的过渡
- python - 如何将熊猫写入不带引号的文件