我通读了中继缓存文档,但感到困惑。
任何人都可以解释primeCache是如何工作的以及它应该如何使用?
首先,我不是100%肯定缓存是在浏览器中还是在服务器端?我猜它是在浏览器中,因为他们确实谈到客户端缓存,我是对的吗?
我也读过这个question,这让我更加困惑。它说
如果Flux存储需要访问服务器数据,他们可以使用Relay.Store API从服务器获取数据并从缓存中读取数据。
我不明白,如果要从缓存中读取它,那为什么需要从服务器获取数据?说实话,没有逻辑。除非它真的是服务器缓存而不是浏览器缓存吗?另外,如果您查看有关Relay.Store的Relay文档(与primeCache有关),他们会说:
Relay Store提供了一个API,用于向服务器发送突变。
如果我理解正确,那些突变会改变服务器端的数据。这意味着他们通过商店查询服务器端。而且因为你使用商店访问primeCache,它可能意味着缓存可能真的是服务器端mm ..
你什么时候可以打电话给primeCache?如果缓存中没有任何内容并且您调用它会怎么样?它是否从服务器获得结果?
请帮忙
答案 0 :(得分:1)
你有它的要点。 Relay背后的想法是,它可以帮助您“组合”您的查询和突变,就像React为您的HTML所做的那样。 Relay将您的React组件与该组件专用的组件相结合,并将其最佳地呈现给您的前端应用程序。
现在,缓存通过将每个数据与唯一ID相关联来工作。您通过Relay对GraphQL服务器发出的声明性查询和突变将在服务器上找到该数据,通过该唯一标识符与您的前端缓存进行比较,并仅更新差异。你可以想象它就像是这个引擎管理的前端数据的版本控制,叫做Relay cache。