【发布时间】:2020-03-09 15:43:24
【问题描述】:
根据本地状态管理中的docs,可以同时使用writeData 和writeQuery 将数据附加到缓存中。
这里有哪些最佳做法?什么时候开始?
【问题讨论】:
标签: graphql apollo apollo-client
根据本地状态管理中的docs,可以同时使用writeData 和writeQuery 将数据附加到缓存中。
这里有哪些最佳做法?什么时候开始?
【问题讨论】:
标签: graphql apollo apollo-client
要将数据写入缓存,您可以使用
cache.writeQuery或cache.writeData。两者之间的唯一区别是cache.writeQuery要求您传入一个查询以验证您写入缓存的数据的形状是否与查询所需的数据的形状相同。在后台,cache.writeData自动从您传入的data对象构造一个查询并调用cache.writeQuery。
唯一的区别是:你是构造传递的查询(通过直接调用cache.writeQuery),还是让Apollo处理它(通过调用cache.writeData)?
从 GitHub 上的 cache.writeData 的 the source 来看,Apollo 似乎会对您提供的数据进行一些分析以确定使用它的最佳方式,而 cache.writeQuery 将直接接受您的查询通过它并使用它。
所以,总结一下:
cache.writeQuery
cache.writeData
【讨论】: