【发布时间】:2021-09-07 21:39:24
【问题描述】:
所以 react-query 缓存是一个键值存储,但这有点限制,不是吗?我认为最好将网络请求保持在最低限度,因为它们比从缓存中获取数据花费的时间要长几个数量级。话虽如此,如果我有一个路由 /todos 作为所有待办事项的页面,并且有一个子路由 /todos/FE234F32 作为一些随机待办事项的页面,那么所有待办事项的查询键都是 ["todos"] 和特定的查询键是[“todos”,“FE234F32”],然后说我首先访问包含所有待办事项的页面,我将在缓存中获得所有待办事项的数据,但是如果我去页面对于特定的 todo,它会发出网络请求,因为 ["todos", "FE234F32"] 没有值。
我知道我可以在 ["todos", "FE234F32"] 的查询函数中执行 getQueryData("todos"),这样我就可以检查数据是否已经在缓存中,但是这种基于条件的解决方案会使代码缓存内有更大的虚拟层次结构看起来很糟糕。一般来说,似乎大多数状态解决方案都是分层的或基于对象的。但是 react-query 的键值性质要么导致获取太多数据并选择向下或获取已经在缓存中的数据。
我可能完全不在这儿,但我希望得到一些见解/提示!
【问题讨论】:
标签: react-query