📜  Apollo 客户端禁用 inMemoryCache - Javascript (1)

📅  最后修改于: 2023-12-03 15:29:26.899000             🧑  作者: Mango

Apollo 客户端禁用 inMemoryCache - JavaScript

Apollo 客户端是一个非常流行的 JavaScript GraphQL 客户端,可以轻松地与 GraphQL 服务器通信。它使用了一个名为 "inMemoryCache" 的缓存,来存储已经获取过的数据,以便下次查询时可以直接从缓存中获取数据,减少网络请求的次数,提高了查询的效率。但有时候,我们需要防止Apollo客户端缓存查询请求,或者有其他原因禁用它。

禁用inMemoryCache

要禁用 inMemoryCache 只需要在创建 Apollo 客户端时将 "cache" 属性设为 false,代码如下:

import { ApolloClient, InMemoryCache } from "@apollo/client";

const client = new ApolloClient({
   uri: "http://localhost:4000/graphql",
   cache: false, // 禁用 inMemoryCache
});

这将导致 Apollo 客户端不再使用缓存,并在每个查询中请求新的数据,查询请求会直接从网络中获取数据,不会读取已缓存的数据。

使用默认缓存

除了禁用缓存外,还可以使用 Apollo 默认提供的缓存,而不是自定义的缓存,只需要删除 "cache" 属性即可。

import { ApolloClient, InMemoryCache } from "@apollo/client";

const client = new ApolloClient({
   uri: "http://localhost:4000/graphql",
});
结论

禁用 inMemoryCache 可能不是 Apollo 的最佳实践,因为缓存可以大大提高应用程序的性能。但在某些情况下,禁用缓存可能有用,例如在编写测试时或进行缓存故障排除时。该功能在 Apollo 3.x 版本中可用,应在使用前仔细考虑。