Apollo-Client-Einrichtung in Vue 3
ApolloClient, InMemoryCache, provideApolloClient() und die Einrichtung von @vue/apollo-composable
Apollo-Client-Einrichtung in Vue 3 ist eine kostenlose Vue Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Vue Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Vue Academy-Kurs umfasst insgesamt 4 Lektionen.
GraphQL mit Vue
GraphQL ermöglicht es dem Client, in einer Anfrage genau die benötigten Daten anzufordern. Apollo Client ist der beliebteste GraphQL-Client, und @vue/apollo-composable integriert ihn in die Composition API von Vue 3.
Die Pakete installieren
Sie benötigen den Apollo-Kern, den GraphQL-Parser und die Vue-Composable-Schicht.
npm install @apollo/client graphql @vue/apollo-composableDen Client erstellen
Ein Apollo-Client benötigt eine Server-uri und einen Cache. InMemoryCache speichert Abfrageergebnisse, sodass wiederholte Lesevorgänge sofort erfolgen.
import { ApolloClient, InMemoryCache } from '@apollo/client/core'
const apolloClient = new ApolloClient({
uri: 'https://api.example.com/graphql',
cache: new InMemoryCache()
})Aufgabe des Caches
Der InMemoryCache normalisiert Antworten anhand der Entitäts-ID. Wenn zwei Abfragen dasselbe Objekt zurückgeben, speichert der Cache es nur einmal. Bei einer Aktualisierung werden alle Ansichten aktualisiert, die es verwenden.
Den Client bereitstellen
Registrieren Sie den Client app-weit, damit jede Komponente Abfragen ausführen kann. Der Injection-Key DefaultApolloClient bindet ihn in die Composition API ein.
import { DefaultApolloClient } from '@vue/apollo-composable'
import { createApp, provide, h } from 'vue'
const app = createApp({
setup() {
provide(DefaultApolloClient, apolloClient)
return () => h(App)
}
})Mehrere Clients
Für mehrere GraphQL-Endpunkte stellen Sie eine ApolloClients-Map bereit und benennen jeden Client. Komponenten wählen einen davon über die Option clientId aus.
import { ApolloClients } from '@vue/apollo-composable'
provide(ApolloClients, {
default: apolloClient,
analytics: analyticsClient
})provideApolloClient
Außerhalb des setup einer Komponente – zum Beispiel innerhalb eines Composables – verwenden Sie provideApolloClient, um den Client für Aufrufe von useQuery verfügbar zu machen.
import { provideApolloClient } from '@vue/apollo-composable'
provideApolloClient(apolloClient)
// now useQuery works in this composableAuth-Header hinzufügen
Reale APIs benötigen ein Auth-Token. Konfigurieren Sie headers in den Client-Optionen oder verwenden Sie einen Apollo-Link, um das Token an jede Anfrage anzuhängen.
const apolloClient = new ApolloClient({
uri: '/graphql',
cache: new InMemoryCache(),
headers: {
Authorization: 'Bearer ' + token
}
})Standardoptionen konfigurieren
Mit dem Feld defaultOptions können Sie das Verhalten anpassen, etwa die standardmäßige Fetch-Policy – beispielsweise, indem Sie immer zuerst aus dem Cache lesen.
const apolloClient = new ApolloClient({
uri: '/graphql',
cache: new InMemoryCache(),
defaultOptions: {
watchQuery: { fetchPolicy: 'cache-and-network' }
}
})Ihre erste Abfrage schreiben
Definieren Sie eine Abfrage mit dem Template-Tag gql aus @apollo/client/core. Dieser parst den GraphQL-String in ein Dokument, das Apollo versteht.
import { gql } from '@apollo/client/core'
const GET_POSTS = gql(
'query { posts { id title } }'
)Die Einrichtung überprüfen
Sobald der Client bereitgestellt ist, kann jede Komponente useQuery mit diesem Dokument aufrufen. Wenn Daten zurückfließen, sind Client und Provider korrekt eingebunden.
Schnelltest
Testen Sie Ihr Wissen über die Einrichtung von Apollo.
Zusammenfassung
Sie haben Apollo in Vue 3 eingerichtet:
- Erstellen Sie einen ApolloClient mit einer uri und einem InMemoryCache.
- Der Cache normalisiert Ergebnisse anhand der Entitäts-ID.
- Stellen Sie ihn mit DefaultApolloClient bereit (oder mit ApolloClients für mehrere Clients).
- Verwenden Sie provideApolloClient in Composables und definieren Sie Abfragen mit gql.
Häufig gestellte Fragen
Ist die Lektion „Apollo-Client-Einrichtung in Vue 3“ kostenlos?
Ja — der vollständige Text von „Apollo-Client-Einrichtung in Vue 3“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Vue Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Vue Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Apollo-Client-Einrichtung in Vue 3“?
ApolloClient, InMemoryCache, provideApolloClient() und die Einrichtung von @vue/apollo-composable Du übst Vue Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Vue Academy zu starten?
Keine Vorkenntnisse erforderlich. Vue Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Apollo-Client-Einrichtung in Vue 3“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Vue Academy-Lektion Code schreiben und ausführen?
Ja. Jede Vue Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Apollo-Client-Einrichtung in Vue 3
- useQuery zum Abrufen von Daten
- useMutation für Datenänderungen
- Echtzeit-Subscriptions mit useSubscription