阿波罗缓存内存的驱逐规则是什么?

时间:2018-08-02 19:09:23

标签: apollo-server apollo-link-state

据我了解,缓存中的任何内容都是短暂的,并且会受到某种驱逐规则的影响,例如LRU。在这种情况下,如果我们使用内存缓存和apollo-link-state来代替redux或vuex,我们如何保证某些状态不会在运行应用程序的过程中被驱除?

1 个答案:

答案 0 :(得分:0)

从Apollo Client v2开始,没有任何驱逐行为。根据评论,它可能在v3的路线图上。

您可以检查这些Github问题进行讨论:

对于更普遍的问题-在大多数情况下,不需要这样的保证。原因是由于Apollo Client和React设计,缓存对应用程序完全透明。当您使用Query组件时,子组件将接收数据。此时,您决定如果数据可用或不可用该怎么办。

例如,如果您决定在数据不可用时渲染加载微调器,则理论上每次移出数据时,组件将重新呈现并显示微调器。

我可以想象一下您可能需要长时间运行的异步操作(如果不是异步操作,则由于JavaScript执行模型的原因,无法再次驱除其中的数据)。在这种情况下(很少见,但有可能),您可能会首先将数据复制到局部变量等中。