快速开始
安装
pnpm add @tanstack/react-query
同时,建议配合 ESLint 插件来帮助捕获编码时的错误:
pnpm add -D @tanstack/eslint-plugin-query
添加@tanstack/eslint-plugin-query
到配置文件的插件部分:
{
"plugins": ["@tanstack/query"]
}
然后在规则部分配置你想要使用的规则:
{
"rules": {
"@tanstack/query/exhaustive-deps": "error",
"@tanstack/query/prefer-query-object-syntax": "error"
}
}
推荐配置:为此插件启用所有推荐的规则,添加plugin:@tanstack/eslint-plugin-query/recommended
扩展
{
"extends": ["plugin:@tanstack/eslint-plugin-query/recommended"]
}
快速开始
React Query主要包含3个核心概念,这三个概念构成了React Query的大部分核心功能。
查询
突变
查询失效
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>
</>
)
}
上述代码片段展示了一个由查询、突变、查询失效
最后更新于
这有帮助吗?