我目前正在使用 React Native 和 GraphQL 开发个人运动跟踪项目,我想知道如何将 Apollo Client 与 Zustand 结合使用。
Apollo 客户端处理数据获取和服务器端缓存,但感觉就像我通过将数据存储在 Zustand 客户端存储中来复制数据。这就提出了一个问题:Zustand 与 Apollo Client 一起使用时真的有用吗?此外,我试图了解同时拥有服务器端和客户端状态管理的好处。鉴于服务器缓存可以在我的整个应用程序中访问,我很难看到将两者结合起来的价值。
非常感谢您对此的见解和解释!
提前谢谢您! ;)
这是我的代码:
const Exercices = () => {
const { token } = useAuthStore();
const { exercices, setExercices } = useExerciceStore();
const { data, loading, error } = useQuery(GET_EXERCICES, {
context: {
headers: {
Authorization: `Bearer ${token}`,
},
},
});
useEffect(() => {
if (data) {
setExercices(data);
}
}, [data]);
if (loading) {
return <Text>Loading...</Text>;
}
if (error) {
return <Text>Error</Text>;
}
我获取练习并设置练习商店客户端。
“客户端数据”这里的意思是“非服务器端的数据”。
不要将来自服务器的数据存储在 Zustand 中。除此之外,您可能没有任何数据,那么您就不需要 Zustand。或者您有数据,例如用户对深色模式相对于浅色模式的偏好未存储在服务器上,那么您可能有客户端状态管理的原因。
在真正需要的时候使用它,而不是“为了某事,出于原则”。