Richten Sie den Apollo-Client für graphQL-Anfragen in React ein
Einführung
In diesem Artikel wird gezeigt, wie Sie mithilfe der ApolloClient-Bibliothek eine React-App für graphQL-Anfragen einrichten. Ziel ist es, zu zeigen, wie die App konfiguriert wird, und ein Beispiel dafür zu geben, wie Anfragen gestellt werden.
Bibliotheken
- @apollo/client: Bibliothek, die die Zustandsverwaltung ermöglicht und GraphQL-Anfragen stellt
- graphql: Bibliothek, die das Parsen von GraphQL-Abfragen ermöglicht
So fügen Sie die Bibliotheken zum Projekt hinzu:
Garn add @apollo/client graphql --dev
Konfiguration
Im Folgenden zeige ich, wie man ApolloClient konfiguriert, um graphQL-Anfragen zu ermöglichen.
Zunächst wird ein ApolloClient-Kontext erstellt, damit alles, was als seine untergeordneten Elemente enthalten ist, graphQL-Anfragen stellen kann:
import { ApolloClient, ApolloProvider, HttpLink, InMemoryCache } from '@apollo/client' function ExampleApolloProvider({ children, token, uri }) { const httpLink = new HttpLink({ uri: uri, headers: { authorization: `Bearer ${token}`, }, }) const client = new ApolloClient({ cache: new InMemoryCache(), link: httpLink, }) return <ApolloProvider client={client}>{children}</ApolloProvider> } export { ExampleApolloProvider as ApolloProvider }
Im Const-Client wird ApolloClient initialisiert und gibt den Endpunkt über den definierten Link und den Cache mithilfe einer Instanz von InMemoryCache an, die ApolloClient zum Zwischenspeichern von Abfrageergebnissen verwendet.
In httpLink wird die URI der graphQL-API zusammen mit den notwendigen Headern für die Anfragen festgelegt. In diesem Beispiel wird ein Bearer-Token verwendet.
Abschließend werden Rückgabe und Export definiert, um die Verwendung innerhalb der App zu ermöglichen.
Da es sich hierbei um eine App handelt, bei der das Token nach der Anmeldung im localStorage gespeichert wird und das Ziel darin besteht, graphQL-Anfragen in der gesamten App zu ermöglichen, wird der in der vorherigen Datei definierte ApolloProvider verwendet:
import { ApolloProvider } from './contexts/ApolloContext' import AppContent from './components/AppContent' const token = localStorage.getItem('@tokenId') // endpoint of your graphQL api const graphqlURI = 'https://www.example.com' const App = () => { return ( <ApolloProvider token={token} uri={graphqlURI}> <AppContent /> </ApolloProvider> ) }
In diesem Beispiel wird das Token aus localStorage abgerufen (in diesem Fall, als ob es mit dem Schlüssel @tokenId gespeichert wäre), und die URI wird in derselben Datei definiert und dann an ApolloProvider übergeben. Der AppContent wird als untergeordnetes Element des ApolloProviders übergeben, was bedeutet, dass alles, was darin enthalten ist, die gesamte App, graphQL-Anfragen stellen kann.
In der Praxis könnte der graphqlURI bei unterschiedlichen Test- und Produktionsumgebungen aus einer Umgebungsvariablen stammen, wobei die URI für jede Umgebung entsprechend definiert wird.
Beginnend mit einer Abfrage namens „Benutzer“, die von der API bereitgestellt wird und den Namen und Beruf des Benutzers zurückgibt, wird eine Datei mit der aufzurufenden Abfrage definiert:
import { gql } from '@apollo/client' const GET_USER = gql` query GetUser { user { name occupation } } ` export default GET_USER
GET_USER entspricht dem Aufruf der Abfrage in der React-App, und user ist der Name der Abfrage, die von der API verwendet werden soll.
In der Datei, die AppContent definiert, wird die GET_USER-Abfrage aufgerufen und ihre Rückgabe verwendet:
import { ApolloClient, ApolloProvider, HttpLink, InMemoryCache } from '@apollo/client' function ExampleApolloProvider({ children, token, uri }) { const httpLink = new HttpLink({ uri: uri, headers: { authorization: `Bearer ${token}`, }, }) const client = new ApolloClient({ cache: new InMemoryCache(), link: httpLink, }) return <ApolloProvider client={client}>{children}</ApolloProvider> } export { ExampleApolloProvider as ApolloProvider }
Der useQuery-Hook führt die in GET_USER definierte Abfrage aus und gibt den Ladevorgang als „true“ zurück, während die Anforderung noch ausgeführt wird. Er gibt einen Fehler zurück, wenn die Anforderung fehlschlägt, und gibt Daten zurück, wenn die Anforderung erfolgreich abgeschlossen wurde. Bis die Daten zurückgegeben werden, wird die Meldung Loading... auf dem Bildschirm angezeigt. Wenn die Anfrage mit einem Fehler endet, wird die Meldung „Anfrage fehlgeschlagen“ angezeigt. Wenn die Anfrage erfolgreich ist, werden der Name und der Beruf des Benutzers (Name und Beruf) auf dem Bildschirm angezeigt.
Auf diese Weise ist der ApolloClient für graphQL-Anfragen konfiguriert und einsatzbereit.
Abschluss
Die Idee bestand darin, zu demonstrieren, wie ApolloClient so konfiguriert wird, dass eine React-App graphQL-Aufrufe durchführen kann, und dabei die Definition des Kontexts, die Verwendung dieses Kontexts und ein Beispiel für die Ausführung einer Abfrage zu zeigen.
Hier ist der Link zur ApolloClient-Dokumentation für alle, die tiefer eintauchen möchten.
Das obige ist der detaillierte Inhalt vonRichten Sie den Apollo-Client für graphQL-Anfragen in React ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Unterschiedliche JavaScript -Motoren haben unterschiedliche Auswirkungen beim Analysieren und Ausführen von JavaScript -Code, da sich die Implementierungsprinzipien und Optimierungsstrategien jeder Engine unterscheiden. 1. Lexikalanalyse: Quellcode in die lexikalische Einheit umwandeln. 2. Grammatikanalyse: Erzeugen Sie einen abstrakten Syntaxbaum. 3. Optimierung und Kompilierung: Generieren Sie den Maschinencode über den JIT -Compiler. 4. Führen Sie aus: Führen Sie den Maschinencode aus. V8 Engine optimiert durch sofortige Kompilierung und versteckte Klasse.

Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.

Die Verschiebung von C/C zu JavaScript erfordert die Anpassung an dynamische Typisierung, Müllsammlung und asynchrone Programmierung. 1) C/C ist eine statisch typisierte Sprache, die eine manuelle Speicherverwaltung erfordert, während JavaScript dynamisch eingegeben und die Müllsammlung automatisch verarbeitet wird. 2) C/C muss in den Maschinencode kompiliert werden, während JavaScript eine interpretierte Sprache ist. 3) JavaScript führt Konzepte wie Verschlüsse, Prototypketten und Versprechen ein, die die Flexibilität und asynchrone Programmierfunktionen verbessern.

Zu den Hauptanwendungen von JavaScript in der Webentwicklung gehören die Interaktion der Clients, die Formüberprüfung und die asynchrone Kommunikation. 1) Dynamisches Inhaltsaktualisierung und Benutzerinteraktion durch DOM -Operationen; 2) Die Kundenüberprüfung erfolgt vor dem Einreichung von Daten, um die Benutzererfahrung zu verbessern. 3) Die Aktualisierung der Kommunikation mit dem Server wird durch AJAX -Technologie erreicht.

Die Anwendung von JavaScript in der realen Welt umfasst Front-End- und Back-End-Entwicklung. 1) Zeigen Sie Front-End-Anwendungen an, indem Sie eine TODO-Listanwendung erstellen, die DOM-Operationen und Ereignisverarbeitung umfasst. 2) Erstellen Sie RESTFUFFUPI über Node.js und express, um Back-End-Anwendungen zu demonstrieren.

Es ist für Entwickler wichtig, zu verstehen, wie die JavaScript -Engine intern funktioniert, da sie effizientere Code schreibt und Leistungs Engpässe und Optimierungsstrategien verstehen kann. 1) Der Workflow der Engine umfasst drei Phasen: Parsen, Kompilieren und Ausführung; 2) Während des Ausführungsprozesses führt die Engine dynamische Optimierung durch, wie z. B. Inline -Cache und versteckte Klassen. 3) Zu Best Practices gehören die Vermeidung globaler Variablen, die Optimierung von Schleifen, die Verwendung von const und lass und die Vermeidung übermäßiger Verwendung von Schließungen.

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Sowohl Python als auch JavaScripts Entscheidungen in Entwicklungsumgebungen sind wichtig. 1) Die Entwicklungsumgebung von Python umfasst Pycharm, Jupyternotebook und Anaconda, die für Datenwissenschaft und schnelles Prototyping geeignet sind. 2) Die Entwicklungsumgebung von JavaScript umfasst Node.JS, VSCODE und WebPack, die für die Entwicklung von Front-End- und Back-End-Entwicklung geeignet sind. Durch die Auswahl der richtigen Tools nach den Projektbedürfnissen kann die Entwicklung der Entwicklung und die Erfolgsquote der Projekte verbessert werden.
