Apollo Client instellen in React
Configureer ApolloProvider, maak de Apollo-client met cache en link chain en verbind met een GraphQL-API
Apollo Client instellen in React is een gratis React Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject React Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus React Academy bevat in totaal 4 lessen.
Apollo Client installeren
Installeer @apollo/client en graphql. Het pakket graphql is een peerafhankelijkheid die Apollo Client nodig heeft om querydocumenten te parseren met de gql-template-tag.
Voor TypeScript-projecten leveren beide pakketten hun eigen typedefinities mee, dus je hebt geen @types-pakketten nodig.
Een ApolloClient-instantie maken
Maak een ApolloClient-instantie met een cache en een link. De eenvoudigste configuratie is: new ApolloClient({ cache: new InMemoryCache(), uri: '/graphql' }). De verkorte uri-notatie maakt intern een HttpLink aan.
Voor meer controle bouw je de link-keten handmatig op en geef je die door aan de optie link in plaats van uri.
ApolloProvider
Wikkel je React-applicatie in ApolloProvider met de prop client: ApolloProvider client={client}. Hierdoor is de Apollo Client-instantie via de React-context beschikbaar voor alle onderliggende componenten.
Elke aanroep van useQuery en useMutation in de componentenboom gebruikt automatisch deze client, zonder dat je props via tussenliggende componenten hoeft door te geven.
InMemoryCache: genormaliseerd cachebeheer
InMemoryCache is de standaardcache van Apollo Client. De cache normaliseert opgehaalde gegevens op basis van type en ID en slaat elke entiteit op onder een unieke cachesleutel (bijvoorbeeld User:1). Wanneer een query User:1 ophaalt, ontvangen alle volgende leesbewerkingen van die entiteit de bijgewerkte gegevens.
Dankzij deze normalisatie wordt het bijwerken van een gebruiker in één mutatie automatisch verwerkt in elk queryresultaat waarin die gebruiker voorkomt, zonder extra code.
HttpLink
HttpLink verzorgt het HTTP-transport van Apollo Client naar je GraphQL-server. Configureer deze met uri en eventueel fetch, headers en credentials.
Voor geavanceerde toepassingen leiden gesplitste links verschillende bewerkingen naar verschillende eindpunten: subscriptions gaan via WebSocket (WebSocketLink), en query's en mutaties gaan via HTTP (HttpLink).
AuthLink met setContext
Importeer setContext uit @apollo/client/link/context. Maak een auth-link: const authLink = setContext((_, { headers }) => ({ headers: { ...headers, authorization: 'Bearer ' + getToken() } })). Koppel deze vóór HttpLink: authLink.concat(httpLink).
De setContext-link wordt vóór elk verzoek uitgevoerd en voegt dynamisch authenticatieheaders toe aan elke bewerking.
Samenstelling van de link-keten
Stel links samen met ApolloLink.from([authLink, errorLink, httpLink]) of authLink.concat(httpLink). Links zijn middleware: elke link verwerkt de bewerking en geeft deze door aan next(). De laatste link in de keten verstuurt het daadwerkelijke HTTP-verzoek.
Veelgebruikte ketens zijn: auth-link (headers toevoegen) + error-link (fouten afhandelen) + HTTP-link (verzoek versturen).
Apollo Link-fout
Importeer onError uit @apollo/client/link/error. De foutlink onderschept GraphQL-fouten en netwerkfouten globaal. Gebruik deze om bij UNAUTHENTICATED-fouten naar een aanmeldpagina door te verwijzen of bij netwerkproblemen een globale foutmelding te tonen.
De foutlink moet vóór de HTTP-link in de keten staan, maar kan forward(operation) aanroepen om het verzoek opnieuw te proberen.
Opties voor fetchbeleid
cache-first (standaard): geef gecachte gegevens direct terug; haal ze op de achtergrond opnieuw op als ze verouderd zijn. network-only: haal altijd gegevens van de server op en werk de cache bij. cache-and-network: geef de cache direct terug EN haal gegevens op; werk de interface bij wanneer het antwoord binnenkomt. cache-only: lees alleen uit de cache en geef een fout als de gegevens niet in de cache staan. no-cache: haal altijd gegevens op en schrijf nooit naar de cache.
Maak je keuze op basis van de vereisten voor gegevensactualiteit: dashboards gebruiken vaak cache-and-network; formulieren voor gebruikersprofielen gebruiken network-only.
Het standaard-fetchbeleid globaal instellen
Stel het standaard-fetchPolicy in via defaultOptions van InMemoryCache: new ApolloClient({ defaultOptions: { watchQuery: { fetchPolicy: 'cache-and-network' } } }). Afzonderlijke useQuery-aanroepen kunnen dit per query overschrijven.
Een zinvolle globale standaardwaarde beperkt de hoeveelheid herhalende code waarin je fetchPolicy bij elke hookaanroep moet opgeven.
Apollo Client DevTools
De browserextensie Apollo Client DevTools voegt een Apollo-paneel toe aan Chrome DevTools. Je kunt er alle gecachte query's en hun huidige gegevens in bekijken, de genormaliseerde cache verkennen en query's opnieuw uitvoeren vanuit het DevTools-paneel.
Installeer de extensie vanuit de Chrome Web Store en initialiseer de client met devtools: { enabled: true } (standaard in de ontwikkelmodus).
Samenstelling van de Apollo Link-keten
Waar moet errorLink in de link-keten van Apollo Client worden geplaatst ten opzichte van httpLink?
Samenvatting van de les
Installeer @apollo/client en graphql, maak een ApolloClient met InMemoryCache en een link-keten en wikkel de app in ApolloProvider. De link-keten combineert authLink (tokens toevoegen), errorLink (globale foutafhandeling) en httpLink (HTTP-transport). Het fetchbeleid bepaalt of de cache of het netwerk voorrang krijgt; InMemoryCache normaliseert entiteiten op basis van type+id.
De Apollo DevTools-browserextensie maakt cache-inspectie en foutopsporing eenvoudig.
Leer React met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 88
- Lessen
- 324
Veelgestelde vragen
Is de les “Apollo Client instellen in React” gratis?
Ja — de volledige tekst van “Apollo Client instellen in React” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus React Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus React Academy bevat in totaal 4 lessen.
Wat leer ik in “Apollo Client instellen in React”?
Configureer ApolloProvider, maak de Apollo-client met cache en link chain en verbind met een GraphQL-API Je oefent met React Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met React Academy te beginnen?
Ervaring vooraf is niet nodig. React Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Apollo Client instellen in React”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over React Academy?
Ja. Elke les over React Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- GraphQL-basisprincipes voor React-ontwikkelaars
- Apollo Client instellen in React
- useQuery- en useMutation-hooks
- Apollo-cache: normalisatie en updates