Heim  >  Artikel  >  Web-Frontend  >  So verwenden Sie React und GraphQL, um eine flexible Front-End- und Back-End-Dateninteraktion aufzubauen

So verwenden Sie React und GraphQL, um eine flexible Front-End- und Back-End-Dateninteraktion aufzubauen

王林
王林Original
2023-09-28 20:30:111645Durchsuche

So verwenden Sie React und GraphQL, um eine flexible Front-End- und Back-End-Dateninteraktion aufzubauen

So verwenden Sie React und GraphQL, um eine flexible Front-End- und Back-End-Dateninteraktion aufzubauen

In der modernen Webanwendungsentwicklung ist die Front-End- und Back-End-Dateninteraktion von entscheidender Bedeutung. Um eine effiziente, flexible und skalierbare Dateninteraktion zu erreichen, ist die Verwendung einer Kombination aus React und GraphQL eine gute Wahl. In diesem Artikel werde ich vorstellen, wie man mit React und GraphQL eine flexible Front-End- und Back-End-Dateninteraktion aufbaut, und spezifische Codebeispiele bereitstellen.

1. Was ist GraphQL?

GraphQL ist eine Reihe von Spezifikationen für eine Abfragesprache und Laufzeit für APIs. Es bietet eine flexible Möglichkeit, die von Front-End-Anwendungen benötigten Daten zu beschreiben, kann die Anzahl der Netzwerkanforderungen reduzieren und die Effizienz der Datenerfassung erheblich verbessern. Im Vergleich zu herkömmlichen RESTful-APIs ermöglicht GraphQL Front-End-Anwendungen, genau die Daten anzugeben, die sie abrufen müssen, ohne unnötige Daten von mehreren Endpunkten abrufen zu müssen.

2. Wie verwende ich React und GraphQL?

  1. Installieren Sie zugehörige Abhängigkeiten

Zuerst müssen Sie einige notwendige Abhängigkeiten installieren. Öffnen Sie das Befehlszeilentool, geben Sie das Projektverzeichnis ein und führen Sie den folgenden Befehl aus:

npm install react react-dom react-apollo graphql apollo-boost
  1. Apollo Client erstellen

In React-Anwendungen können wir Apollo Client verwenden, um die Kommunikation mit dem GraphQL-Server zu verwalten. Öffnen Sie zunächst die Eintragsdatei des Projekts (normalerweise index.js) und erstellen Sie dann den Apollo-Client wie folgt:

import React from 'react';
import { ApolloProvider } from 'react-apollo';
import ApolloClient from 'apollo-boost';

const client = new ApolloClient({
  uri: 'http://localhost:4000/graphql' // GraphQL服务器的URL
});

ReactDOM.render(
  <ApolloProvider client={client}>
    <App />
  </ApolloProvider>,
  document.getElementById('root')
);
  1. GraphQL-Abfrage senden

In der React-Komponente können wir die von bereitgestellte Query verwenden Apollo Client -Komponente zum Senden von GraphQL-Abfragen und zum Abrufen von Daten. Hier ist ein Beispiel: Query组件来发送GraphQL查询并获取数据。以下是一个示例:

import React from 'react';
import { Query } from 'react-apollo';
import gql from 'graphql-tag';

const GET_USER = gql`
  query GetUser($id: ID!) {
    user(id: $id) {
      id
      name
      email
    }
  }
`;

const User = ({ id }) => (
  <Query query={GET_USER} variables={{ id }}>
    {({ loading, error, data }) => {
      if (loading) return <p>Loading...</p>;
      if (error) return <p>Error :(</p>;

      const { user } = data;

      return (
        <div>
          <p>Name: {user.name}</p>
          <p>Email: {user.email}</p>
        </div>
      );
    }}
  </Query>
);

在上面的代码中,我们定义了一个GET_USER的GraphQL查询,并将其作为query属性传递给Query组件。我们还通过variables属性传递了查询所需的变量。在组件的回调函数中,我们可以访问loadingerrordata等信息。根据这些信息,我们可以在页面上显示相应的内容。

  1. 发送GraphQL变更

除了发送查询,我们还可以使用Apollo Client提供的Mutation组件来发送GraphQL变更。以下是一个示例:

import React from 'react';
import { Mutation } from 'react-apollo';
import gql from 'graphql-tag';

const CREATE_USER = gql`
  mutation CreateUser($input: CreateUserInput!) {
    createUser(input: $input) {
      id
      name
      email
    }
  }
`;

const CreateUser = () => (
  <Mutation mutation={CREATE_USER}>
    {(createUser, { data }) => (
      <div>
        <button onClick={() => {
          createUser({ variables: { input: { name: 'John', email: 'john@example.com' } } })
        }}>Create User</button>
      </div>
    )}
  </Mutation>
);

在上面的代码中,我们定义了一个CREATE_USER的GraphQL变更,并将其作为mutation属性传递给Mutation组件。在组件的回调函数中,我们可以通过调用createUserrrreee

Im obigen Code definieren wir eine GraphQL-Abfrage für GET_USER und übergeben sie als query-Attribut an Query Komponente. Wir haben auch die für die Abfrage erforderlichen Variablen über das Attribut <code>variables übergeben. In der Rückruffunktion der Komponente können wir auf Informationen wie loading, error und data zugreifen. Anhand dieser Informationen können wir entsprechende Inhalte auf der Seite anzeigen.

    GraphQL-Änderungen senden

    Zusätzlich zum Senden von Abfragen können wir auch die von Apollo Client bereitgestellte Mutation-Komponente verwenden, um GraphQL-Änderungen zu senden. Hier ist ein Beispiel:

    rrreee🎜 Im obigen Code definieren wir eine GraphQL-Mutation von CREATE_USER und übergeben sie als mutation-Attribut an Mutation Komponente. In der Rückruffunktion der Komponente können wir Änderungen senden, indem wir die Funktion createUser aufrufen. Ebenso können wir bei Bedarf relevante Inhalte auf der Seite anzeigen. 🎜🎜3. Zusammenfassung🎜🎜Anhand der obigen Beispiele können wir sehen, dass die Kombination von React und GraphQL eine effiziente, flexible und skalierbare Front-End- und Back-End-Dateninteraktion erreichen kann. Mit React und Apollo Client können wir problemlos GraphQL-Abfragen und -Änderungen senden sowie Daten auf der Seite anzeigen und verarbeiten. Dieser Ansatz kann die Komplexität der Front-End-Entwicklung erheblich vereinfachen und eine bessere Benutzererfahrung bieten. 🎜🎜Ich hoffe, dieser Artikel kann Ihnen helfen zu verstehen, wie Sie React und GraphQL verwenden, um eine flexible Front-End- und Back-End-Dateninteraktion aufzubauen. Wenn Sie React und GraphQL noch nicht ausprobiert haben, empfehle ich Ihnen, sie in Ihrem eigenen Projekt auszuprobieren, und ich glaube, Sie werden feststellen, wie leistungsstark sie sind. Wir wünschen Ihnen bessere Ergebnisse bei der Webentwicklung! 🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie React und GraphQL, um eine flexible Front-End- und Back-End-Dateninteraktion aufzubauen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn