嗯,让我们从几个重要的项目开始
考虑到这些,简短的回答是 TanStack Query 取代了用于在客户端状态中管理缓存数据的样板代码和相关连接,并用几行代码取代了它。
对于绝大多数应用程序来说,在将所有异步代码迁移到 TanStack Query 之后,真正全局可访问的客户端状态通常非常小。
仍然存在某些应用程序可能拥有大量同步的仅客户端状态(例如视觉设计器或音乐制作应用程序),在这种情况下,您可能仍然需要一个客户端状态管理器。在这种情况下,需要注意的是,TanStack Query 并非本地/客户端状态管理的替代品。但是,您可以毫无问题地将 TanStack Query 与大多数客户端状态管理器一起使用。
这里我们有一些由全局状态库管理的“全局”状态
const globalState = {
projects,
teams,
tasks,
users,
themeMode,
sidebarStatus,
}
const globalState = {
projects,
teams,
tasks,
users,
themeMode,
sidebarStatus,
}
当前,全局状态管理器正在缓存 4 种类型的服务器状态:项目、团队、任务和用户。如果我们这些服务器状态资产转移到 TanStack Query,我们剩余的全局状态将看起来更像这样
const globalState = {
themeMode,
sidebarStatus,
}
const globalState = {
themeMode,
sidebarStatus,
}
这也意味着,通过对 injectQuery 和 injectMutation 进行几次函数调用,我们还可以移除用于管理服务器状态的任何样板代码,例如:
移除了所有这些东西后,您可能会问自己,“为了这个微小的全局状态,值得继续使用我们的客户端状态管理器吗?”
这取决于您!
但 TanStack Query 的作用很明确。它从您的应用程序中删除了异步连接和样板代码,并用几行代码取代了它。
还在等什么,快试试吧!