queryClient.fetchQuery可以用来代替useQueryreact-query提供的hook。关于在哪种情况下应优先选择其中一种的任何指南、最佳实践。
一种场景可能是我们想要有条件地获取数据。因此,queryClient.fetchQuery 看起来更自然,而 useQuery hook 则不然。
上述逻辑正确吗?请建议使用其中一种而不是另一种的最佳实践
fetchQuery是获取数据的必要方式。您不能在渲染期间调用它,因为这会产生副作用并且您无法得到await结果。所以你需要生成一个 useEffect。
另一个区别是useQuery创建对 queryKey 的订阅,但fetchQuery实际上没有。因此,如果数据因其他原因而更新(例如安装第二个组件并触发查询的重新重新获取,或者由于您聚焦窗口而查询已过时而在后台重新获取),您的组件将不会重新渲染并显示新数据。
一种场景可能是我们想要有条件地获取数据。
这是您需要enabled选项的地方useQuery,这样disable只要不满足条件,您就可以进行查询。
最重要的是:两者不可互换,我几乎从未使用过fetchQuery。对于组件,总是使用Query
| 归档时间: |
|
| 查看次数: |
8852 次 |
| 最近记录: |