我们可以在阿波罗的文档中读到以下内容。
默认情况下,钩子检查阿波罗客户端缓存,以查看所请求的所有数据是否已在本地可用。如果所有数据都在本地可用,useQuery将返回该数据,并且不会查询您的GraphQL服务器。这个缓存优先策略是阿波罗客户端的默认获取策略。
比方说,我有一个页面,在这里我加载了人们添加的所有书籍。假设userA正在看这个屏幕。userB现在添加了一个新的。
问题:
如果刷新页面,他/她会看到增加的新书吗?我真的不明白阿波罗是什么意思if all data is available locally。阿波罗如何才能知道所有的数据是否已经可用?有人可以同时加入它。--
我是阿波罗GraphQL的新手。在阅读它的文档时,它多次提到单词imperative。但我在网上找不到确切的解释来澄清阿波罗GraphQL的“命令”究竟是什么。到目前为止,最简单的指示。我得到的是imperative programming is like how you do something, and declarative programming is more like what you do.
下面是提到阿波罗imperative GraphQL的一个例子:
图形‘s的突变是必须触发的,但这只是因为特定的或呈现的支持授予对执行突变的函数的访问权限(例如,单击按钮)。有了阿波罗,突变
是否有一种方法可以在查询响应数据保存到内部缓存之前修改它?我正在使用阿波罗钩子,但这个问题与使用阿波罗客户端(特设组件)的任何前端方法都相关。
const { data, updateQuery } = useQuery(QUERY, {
onBeforeDataGoesToCache: originalResponseData => {
// modify data before it is cached? Can I have something like this?
return modifiedData;
}
});
显然,onBeforeDataGoe
我正在执行来自阿波罗服务器/快车后端的个人帖子请求。
在阿波罗GraphQL沙箱中,查询工作并检索正确的帖子,但是,查询有一个红色的选项来标识一个错误,该错误是:
变量"$getPostId“从未用于操作”查询“。
查询如下-
query Query($getPostId: ID!) {
getPost(id:"20c9b3ac-afe6-4faa-a3f9-e00ef1b38ccf") {
title
author
id
}
}
该模式如下-
module.exports = gql`
type Post {
id: ID