溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用Apollo或Relay等庫在React中實現(xiàn)GraphQL

發(fā)布時間:2024-05-11 10:51:16 來源:億速云 閱讀:87 作者:小樊 欄目:軟件技術(shù)

要在React中使用GraphQL,您可以通過使用Apollo或Relay等庫來實現(xiàn)。下面是一個簡單的步驟來使用Apollo在React中實現(xiàn)GraphQL:

  1. 安裝所需的軟件包: 首先,在您的項目中安裝必需的軟件包。使用以下命令安裝Apollo Client:
npm install @apollo/client graphql
  1. 設(shè)置Apollo Client: 在您的應(yīng)用程序中設(shè)置Apollo Client。創(chuàng)建一個新的Apollo Client實例,并將其包裝在< ApolloProvider >組件中。這將使您的整個應(yīng)用程序能夠訪問GraphQL數(shù)據(jù)。
import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';

const client = new ApolloClient({
  uri: 'https://your-graphql-endpoint.com',
  cache: new InMemoryCache()
});

const App = () => (
  <ApolloProvider client={client}>
    <YourApp />
  </ApolloProvider>
);
  1. 查詢數(shù)據(jù): 使用< useQuery >鉤子來在組件中查詢數(shù)據(jù)。將您的GraphQL查詢傳遞給< useQuery >,并在組件中訪問數(shù)據(jù)和加載狀態(tài)。
import { useQuery, gql } from '@apollo/client';

const GET_BOOKS = gql`
  query GetBooks {
    books {
      id
      title
      author
    }
  }
`;

const BooksList = () => {
  const { loading, error, data } = useQuery(GET_BOOKS);

  if (loading) return <p>Loading...</p>;
  if (error) return <p>Error: {error.message}</p>;

  return (
    <ul>
      {data.books.map(book => (
        <li key={book.id}>{book.title} by {book.author}</li>
      ))}
    </ul>
  );
};
  1. 更改數(shù)據(jù): 使用< useMutation >鉤子來更改數(shù)據(jù)。將您的GraphQL變異傳遞給< useMutation >,并在組件中調(diào)用該變異。
import { useMutation, gql } from '@apollo/client';

const ADD_BOOK = gql`
  mutation AddBook($title: String!, $author: String!) {
    addBook(title: $title, author: $author) {
      id
      title
      author
    }
  }
`;

const AddBookForm = () => {
  let titleInput, authorInput;

  const [addBook] = useMutation(ADD_BOOK);

  const handleSubmit = e => {
    e.preventDefault();

    addBook({
      variables: {
        title: titleInput.value,
        author: authorInput.value
      }
    });

    titleInput.value = '';
    authorInput.value = '';
  };

  return (
    <form onSubmit={handleSubmit}>
      <input ref={node => { titleInput = node; }} />
      <input ref={node => { authorInput = node; }} />
      <button type="submit">Add Book</button>
    </form>
  );
};

這些步驟向您展示了如何在React中使用Apollo Client來實現(xiàn)GraphQL。您可以根據(jù)您的需求和項目來進一步擴展和調(diào)整這些示例。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI