const userQuery = useQuery({
queryKey: ["users", id],
queryFn: async () => {
await sleep(2000);
return fetch(`http://localhost:3000/${id}`).then((res) => res.json());
},
placeholderData: { id: 1, name: "John Doe", email: "alice@example.com" }
});
const placeholderData = useMemo(() => ({ id: 1, name: "John Doe", email: "alice@example.com" }), []);
const userQuery = useQuery({
queryKey: ["users", id],
queryFn: async () => {
await sleep(2000);
return fetch(`http://localhost:3000/${id}`).then((res) => res.json());
},
placeholderData
});
const userQuery = useQuery({
queryKey: ["users", id],
queryFn: async () => {
await sleep(2000);
return fetch(`http://localhost:3000/${id}`).then((res) => res.json());
},
placeholderData: (previousData, previousQuery) => previousData
});
const userQuery = useQuery({
queryKey: ["users", id],
queryFn: async () => {
await sleep(2000);
return fetch(`http://localhost:3000/${id}`).then((res) => res.json());
},
placeholderData: (previousData) => {
return queryClient.getQueryData(["users"])?.find((user) => user.id === previousData.id + 1);
}
});