mcpField
P
practical-react-query

practical-react-query

github.com/mhdcodesDevelopment640 installsUpdated 36w ago
Repository

About practical-react-query

practical-react-query is a reference skill for developers building React applications with TanStack Query. It covers data fetching, async state, mutations, errors, testing, and related integrations through topic-based guides.

Key features

  1. 01Query setup and configuration
  2. 02Caching and data synchronization
  3. 03Mutations and optimistic updates
  4. 04Error handling and retry strategies
  5. 05TypeScript and integration guidance
  6. 06Testing and performance patterns

Use cases

  1. 01Adding data fetching to a React app
  2. 02Managing mutations and cache invalidation
  3. 03Handling query errors and retries
  4. 04Testing or optimizing query behavior

Install

Copy the command and run it in a terminal.

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

After installing, type/practical-react-queryin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with 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

Details

From the project README

React Query Guide

This skill provides comprehensive guidance on React Query (TanStack Query) for building modern React applications with async state management.

When to Use This Skill

Use this skill when you need help with:

  • Setting up and configuring React Query
  • Data fetching, caching, and synchronization
  • Mutations and optimistic updates
  • Error handling and retry strategies
  • TypeScript integration
  • Testing React Query code
  • Performance optimization
  • Advanced patterns and best practices

Topics

Read the relevant reference file based on what you need:

Getting Started
TopicDescriptionFile
Practical React QueryCore concepts, defaults, query keys, custom hooks01-practical-react-query.md
Why Use React QueryBenefits and reasons to adopt React Query23-why-use.md
When Not NeededSimpler alternatives when React Query is overkill21-when-not-needed.md
Core Concepts
TopicDescriptionFile
Query KeysStructuring keys for caching, refetching, invalidation08-query-keys.md
Query Function ContextExtract params from query keys09-query-function-context.md
Query Options APICode organization and type inference24-query-options-api.md
State ManagerReact Query as an async state manager11-state-manager.md
Data Handling
TopicDescriptionFile
Data TransformationsTransform data in queryFn, render, or select02-data-transformations.md
Placeholder & Initial DataPre-fill cache, improve UX10-placeholder-initial-data.md
Seeding CachePre-populate query cache18-seeding-cache.md
SelectorsAdvanced selector patterns for partial subscriptions28-selectors.md
Mutations & Updates
TopicDescriptionFile
MutationsuseMutation, optimistic updates, invalidation13-mutations.md
Auto InvalidationAutomatic query invalidation patterns25-auto-invalidation.md
Concurrent Optimistic UpdatesHandle concurrent optimistic updates27-concurrent-optimistic.md
State & Error Handling
TopicDescriptionFile
Status ChecksLoading states, background errors04-status-checks.md
Error HandlingError boundaries, retry strategies12-error-handling.md
Performance
TopicDescriptionFile
Render OptimizationsnotifyOnChangeProps, tracked queries, structural sharing03-render-optimizations.md
Infinite QueriesPagination, infinite scroll26-infinite-queries.md
Integration
TopicDescriptionFile
TypeScriptGenerics, type narrowing, enabled option typing06-typescript.md
Type SafetyAdvanced TypeScript patterns20-type-safe.md
React RouterData loading, navigation integration17-react-router.md
React ContextCombining with React Context22-context.md
WebSocketsReal-time data sync07-websockets.md
FormsForm integration, handling form state15-forms.md
Advanced
TopicDescriptionFile
InternalsQueryClient, QueryCache, QueryObserver19-internals.md
Offline SupportPersistence, offline mutations14-offline.md
TestingMocking network requests, MSW integration05-testing.md
FAQsFrequently asked questions16-faqs.md

Quick Reference

Basic Query
import { useQuery } from "@tanstack/react-query";

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

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

  const mutation = useMutation({
    mutationFn: addTodo,
    onSuccess: () => {
      queryClient.invalidateQueries({ queryKey: ["todos"] });
    },
  });
}
Query Client Setup
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";

const queryClient = new QueryClient();

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

Comments

Markdown supported