可以看出,React Query 是跟服务器端同步的框架, Redux,MobX 之类的是客户端的全局状态管理。听起来是两种不同 rule 的框架,不过可以先举个例子:
具体的例子
假设某个全局状态管理有如下状态:
const globalState = {
projects,
teams,
tasks,
users,
themeMode,
sidebarStatus,
}
其中,projects
, teams
, tasks
, users
是服务器端状态,实际上可以把它们从全局状态中移除掉,变成
const globalState = {
themeMode,
sidebarStatus,
}
而其余的服务器端状态,可以通过 useQuery
, useMutation
获取。如果只有这么几个状态,是否值得还用全局状态管理,本身就会变成问题。
由此可见,React Query 与全局状态管理库实际上在某些方面有二选一的特性。如果某个应用是富交互应用,也即是有大量的前端状态,React Query 与全局状态管理库才可能共存。
网友评论