mcpField
P
practical-react-query

practical-react-query

github.com/mhdcodes开发640 次安装36 周前更新
代码仓库

关于 practical-react-query

practical-react-query 是面向 React 开发者的 TanStack Query 参考技能,内容涵盖数据获取、异步状态、变更、错误处理、测试及相关集成,并按主题组织指南。

主要功能

  1. 01查询配置与初始化
  2. 02缓存和数据同步
  3. 03变更与乐观更新
  4. 04错误处理和重试策略
  5. 05TypeScript 与集成指南
  6. 06测试和性能模式

适用场景

  1. 01为 React 应用添加数据获取
  2. 02管理变更和缓存失效
  3. 03处理查询错误与重试
  4. 04测试或优化查询行为

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mhdcodes/react-query-skill --skill practical-react-query

安装后在 Claude Code 中输入/practical-react-query确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
references/
09-query-function-context.md
03-render-optimizations.md
04-status-checks.md
05-testing.md
02-data-transformations.md
08-query-keys.md
07-websockets.md
06-typescript.md
01-practical-react-query.md
10-placeholder-initial-data.md
11-state-manager.md
15-forms.md
14-offline.md
12-error-handling.md
13-mutations.md
17-react-router.md
18-seeding-cache.md
19-internals.md
16-faqs.md
20-type-safe.md
22-context.md
26-infinite-queries.md
23-why-use.md
21-when-not-needed.md
24-query-options-api.md
28-selectors.md
27-concurrent-optimistic.md
25-auto-invalidation.md

详细介绍

React Query 指南

本技能为使用 React Query(TanStack Query)构建具备异步状态管理能力的现代 React 应用提供全面指导。

何时使用此技能

在需要以下方面的帮助时使用此技能:

  • 设置和配置 React Query
  • 数据获取、缓存和同步
  • 变更和乐观更新
  • 错误处理和重试策略
  • TypeScript 集成
  • 测试 React Query 代码
  • 性能优化
  • 高级模式和最佳实践

主题

根据需要阅读相关参考文件:

入门
主题描述文件
实用 React Query核心概念、默认值、查询键、自定义钩子01-practical-react-query.md
为什么使用 React Query采用 React Query 的优势和原因23-why-use.md
何时不需要React Query 功能过剩时的简单替代方案21-when-not-needed.md
核心概念
主题描述文件
查询键用于缓存、重新获取和失效处理的键结构08-query-keys.md
查询函数上下文从查询键中提取参数09-query-function-context.md
查询选项 API代码组织和类型推断24-query-options-api.md
状态管理器将 React Query 用作异步状态管理器11-state-manager.md
数据处理
主题描述文件
数据转换在 queryFn、渲染或 select 中转换数据02-data-transformations.md
占位数据和初始数据预填充缓存,改善用户体验10-placeholder-initial-data.md
填充缓存预先填充查询缓存18-seeding-cache.md
选择器用于部分订阅的高级选择器模式28-selectors.md
变更与更新
主题描述文件
变更useMutation、乐观更新、失效处理13-mutations.md
自动失效自动查询失效模式25-auto-invalidation.md
并发乐观更新处理并发乐观更新27-concurrent-optimistic.md
状态与错误处理
主题描述文件
状态检查加载状态、后台错误04-status-checks.md
错误处理错误边界、重试策略12-error-handling.md
性能
主题描述文件
渲染优化notifyOnChangeProps、跟踪查询、结构共享03-render-optimizations.md
无限查询分页、无限滚动26-infinite-queries.md
集成
主题描述文件
TypeScript泛型、类型收窄、enabled 选项类型06-typescript.md
类型安全高级 TypeScript 模式20-type-safe.md
React Router数据加载、导航集成17-react-router.md
React Context与 React Context 结合使用22-context.md
WebSockets实时数据同步07-websockets.md
表单表单集成、处理表单状态15-forms.md
高级
主题描述文件
内部机制QueryClient、QueryCache、QueryObserver19-internals.md
离线支持持久化、离线变更14-offline.md
测试模拟网络请求、集成 MSW05-testing.md
常见问题常见问题解答16-faqs.md

快速参考

基本查询
import { useQuery } from "@tanstack/react-query";

function Component() {
  const { data, isLoading, error } = useQuery({
    queryKey: ["todos"],
    queryFn: fetchTodos,
  });
}
基本变更
import { useMutation, useQueryClient } from "@tanstack/react-query";

function Component() {
  const queryClient = useQueryClient();

  const mutation = useMutation({
    mutationFn: addTodo,
    onSuccess: () => {
      queryClient.invalidateQueries({ queryKey: ["todos"] });
    },
  });
}
查询客户端设置
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";

const queryClient = new QueryClient();

function App() {
  return (
    <QueryClientProvider client={queryClient}>
      <YourApp />
    </QueryClientProvider>
  );
}

评论

支持 Markdown