import {
useQuery,
useMutation,
useQueryClient,
QueryClient,
QueryClientProvider
} from "@tanstack/react-query"
// 创建client
const queryClient = new QueryClient()
function App() {
return (
<QueryClientProvider client={queryClient}>
<Todos/>
</QueryClientProvider>
)
}
function Todos() {
// 访问client
const queryClient = useQueryClient()
// queries
const query = useQuery({
queryKey: ['todos'],
queryFn: () => fetch('http://localhost:4000/api/get')
})
// 突变
const mutations = useMutation({
mutationFn: () => fetch("http://localhost:4000/api/post"),
onSuccess: () => {
// 重新获取最新数据
queryClient.invalidateQueries({ queryKey: ['todos'] })
}
})
return (
<>
<div>
{JSON.stringify(query.data)}
</div>
<button onClick={() => mutations.mutate()}>
Add Todo
</button>
</>
)
}