2016-05-12 148 views
2

我通过中继缓存文档阅读,但它感到困惑。中继缓存如何工作?

任何人都可以解释primeCache是​​如何工作的以及它应该如何使用?

首先,我甚至不会100%肯定缓存是在浏览器中,还是在服务器端?我猜这是在浏览器中,因为他们确实在谈论客户端缓存,对吧?

我也读过这个question,它让我更困惑。它说

如果Flux商店需要访问服务器数据,他们可以使用Relay.Store API从服务器获取数据并从缓存中读取数据。

我不明白,如果它要从缓存中读取它,那么为什么它需要从服务器获取数据?没有任何理由说实话。除非它真的是服务器缓存而不是浏览器缓存?此外,如果你看一下关于Relay.Store中继文档(这确实涉及到primeCache),他们说:

接力赛商店提供调度突变到服务器的API。

如果我理解正确,那些突变会改变服务器端的数据。这意味着他们通过商店查询服务器端。并且因为您使用商店访问primeCache,这可能意味着缓存可能真的是服务器端mm。

什么时候可以调用primeCache?如果缓存中没有任何东西,并且您打电话给它,会怎么样?它是否从服务器获得结果?

请帮忙

回答

1

你已经有了它的要义。 Relay背后的想法是,它可以帮助您像React一样为您的HTML“组件化”您的查询和突变。 Relay将您的React组件与专门针对该组件所需的组件相结合,并将其优化呈现给您的前端应用程序。

现在,缓存的工作原理是将每段数据与唯一的ID相关联。您通过Relay向GraphQL服务器发出的声明性查询和突变将在服务器上找到该数据片段,并通过该唯一标识符将其与前端缓存进行比较,并仅更新差异。您可以将它想象成它是您的前端管理的前端数据的版本控制,该前端称为“继电器缓存”。