缓存 GraphQL 比 REST 更难,因为只有一个 endpoint,而且请求通常是 POST,所以基于 URL 的 HTTP 缓存开箱即用行不通。你转而在三层做缓存:客户端、传输层/CDN 和 服务端。
归一化的客户端缓存
Apollo Client 和 Relay 把结果存进一个以 __typename + id 为键的归一化缓存(normalized cache)。每个对象只存一份;引用同一个 User:1 的不同查询会共享它,因此更新某个实体的 mutation 会自动刷新每个视图。
