React Academy · leksjon

Sette opp React Query og QueryClient

Installer TanStack Query, pakk appen inn i QueryClientProvider og kjør din første useQuery.

Leksjon 1 av 413 trinn

Sette opp React Query og QueryClient er en gratis leksjon i React Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i React Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i React Academy inneholder totalt 4 leksjoner.

Velkommen

I denne leksjonen skal du installere TanStack Query, konfigurere QueryClient og QueryClientProvider og kjøre din første useQuery for å hente data fra et API.

Hva er React Query?

TanStack Query (tidligere React Query) håndterer tilstand på serveren: henting, hurtigbufring, synkronisering og oppdatering av data fra eksterne kilder. Det erstatter manuell håndtering av innlastings- og feiltilstander samt datahenting basert på useEffect.

Installasjon

Installer kjernepakken og eventuelt DevTools.
npm install @tanstack/react-query
npm install @tanstack/react-query-devtools --save-dev

Opprette en QueryClient

Opprett en QueryClient-instans som inneholder all hurtigbufring og konfigurasjon. Send den til QueryClientProvider, som omslutter appen din.
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';

const queryClient = new QueryClient();

createRoot(document.getElementById('root')).render(
  <QueryClientProvider client={queryClient}>
    <App />
  </QueryClientProvider>
);

Din første useQuery

Kall useQuery med en queryKey-matrise og en queryFn som returnerer dataene. Nøkkelen identifiserer den hurtigbufrede oppføringen entydig.
import { useQuery } from '@tanstack/react-query';

function Posts() {
  const { data, isLoading, isError } = useQuery({
    queryKey: ['posts'],
    queryFn: () => fetch('/api/posts').then(r => r.json()),
  });

  if (isLoading) return <p>Loading...</p>;
  if (isError) return <p>Error!</p>;
  return <ul>{data.map(p => <li key={p.id}>{p.title}</li>)}</ul>;
}

Query Keys

Query keys er matriser. Legg parametere til nøkkelen for å avgrense den hurtigbufrede oppføringen. Ulike nøkler betyr ulike hurtigbufrede oppføringer.
// All posts
useQuery({ queryKey: ['posts'], queryFn: fetchPosts })

// Post with id 5
useQuery({ queryKey: ['posts', 5], queryFn: () => fetchPost(5) })

// Posts filtered by category
useQuery({ queryKey: ['posts', { category: 'react' }], queryFn: /* ... */ })

Query-status

useQuery returnerer flere statusegenskaper: `isLoading`, `isFetching`, `isError`, `isSuccess`, `data` og `error`. `isFetching` er true også ved bakgrunnshenting; `isLoading` er true bare ved den første innlastingen.

React Query DevTools

Legg til ReactQueryDevtools i appen under utvikling for å se alle hurtigbufferoppføringer, statusen deres og når de sist ble hentet. Dette er svært nyttig ved feilsøking.
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';

<QueryClientProvider client={queryClient}>
  <App />
  <ReactQueryDevtools initialIsOpen={false} />
</QueryClientProvider>

Standardkonfigurasjon

Konfigurer globale standardverdier på QueryClient: staleTime, gcTime (søppelinnsamling), antall forsøk og refetchOnWindowFocus.
const queryClient = new QueryClient({
  defaultOptions: {
    queries: {
      staleTime: 60_000,     // data is fresh for 60s
      retry: 2,              // retry failed queries twice
      refetchOnWindowFocus: false,
    },
  },
});

Automatisk ny henting

Som standard henter React Query inn foreldede data på nytt når vinduet får fokus igjen, komponenten monteres på nytt og nettverket kobles til igjen. Disse innstillingene kan konfigureres separat for hver spørring.

Hurtigsjekk

Hva er formålet med queryKey-matrisen i useQuery?

Oppsummering

Installer @tanstack/react-query, opprett QueryClient, omslutt appen med QueryClientProvider og kall useQuery med en queryKey og en queryFn. Legg til DevTools for innsyn. Konfigurer globale standardverdier på QueryClient.

Neste

Neste leksjon: **Hurtigbufring, staleTime og bakgrunnshenting** — du skal konfigurere staleTime og gcTime for å styre når data hentes på nytt.
Gratis å komme i gang

Lær deg React med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
88
Leksjoner
324

Ofte stilte spørsmål

Er leksjonen «Sette opp React Query og QueryClient» gratis?

Ja – hele teksten i «Sette opp React Query og QueryClient» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av React Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i React Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Sette opp React Query og QueryClient»?

Installer TanStack Query, pakk appen inn i QueryClientProvider og kjør din første useQuery. Du øver på React Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med React Academy?

Ingen tidligere erfaring er nødvendig. React Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Sette opp React Query og QueryClient»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne React Academy-leksjonen?

Ja. Alle React Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Sette opp React Query og QueryClient
  2. Caching, stale-tid og bakgrunnshenting
  3. Mutations med useMutation
  4. Uendelig scrolling og paginering med useInfiniteQuery
← Tilbake til React Academy