如何处理大型嵌套对象的缓存



我有一个 graphql 对象,它有一堆嵌套的对象字段,如下所示:

object{
field1
field2
field3
field4 {
field4.1
field4.2 {
field4.2.1
}
}
field5 {
field5.1{
field 5.1.1
field 5.1.2
}
}
field 6
field 7
}

问题是,对于 field4 和 field5,它们没有唯一标识符,它们对于对象始终是唯一的。我不希望它尝试缓存这些对象,而只是缓存整个对象,因为子字段对于父对象是唯一的。

如何告诉我客户端我不想尝试缓存这些子字段,而只是将对象作为一个整体缓存?

我做了以下事情来解决这个问题

const blackList = new Set()
new InMemoryCache({
dataIdFromObject: (o: any) => {
if (o.__typename != null) {
if (cacheBlacklist.has(o.__typename)) {
return null
}
...
}

最新更新