GraphQL 如何使用 apollo 客户端的缓存和网络策略在客户端进行搜索 - 客户端解析器

时间:2021-02-19 15:08:00

标签: caching apollo apollo-client react-apollo

如何使用 apollo-client 实现客户端搜索,搜索缓存对象(不是缓存请求或仅单个对象解析器)?

例如想象以下场景:我有一个帖子列表。帖子存储在 id 键上。用户按部分帖子标题进行搜索。由于我的服务器端搜索速度很慢,我喜欢从缓存的帖子对象中提供结果。

我最初考虑过 local resolvers,但它们似乎已被弃用。执行此操作的新方法是什么?

我的想法是编写一个客户端解析器并使用缓存和网络策略

  1. 检查是否已经缓存了该查询的搜索结果
  2. 如果尚未缓存,客户端解析器将迭代本地缓存对象并返回那些可用的对象。如果网络提供更快的响应,这将被取消。
  3. 并行使用网络查询
  4. 存储此搜索的缓存,以防用户再次搜索。
  5. UI 通过 react useQuery (/watchQuery) 订阅以根据第一个和第二个结果进行更新。

可能相关的讨论

感谢您的专业知识和帮助!

0 个答案:

没有答案