温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用Apollo或Relay等库在React中实现GraphQL

发布时间:2024-05-11 10:51:16 来源:亿速云 阅读:93 作者:小樊 栏目:软件技术

要在React中使用GraphQL,您可以通过使用Apollo或Relay等库来实现。下面是一个简单的步骤来使用Apollo在React中实现GraphQL:

  1. 安装所需的软件包: 首先,在您的项目中安装必需的软件包。使用以下命令安装Apollo Client:
npm install @apollo/client graphql
  1. 设置Apollo Client: 在您的应用程序中设置Apollo Client。创建一个新的Apollo Client实例,并将其包装在< ApolloProvider >组件中。这将使您的整个应用程序能够访问GraphQL数据。
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. 查询数据: 使用< useQuery >钩子来在组件中查询数据。将您的GraphQL查询传递给< useQuery >,并在组件中访问数据和加载状态。
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. 更改数据: 使用< useMutation >钩子来更改数据。将您的GraphQL变异传递给< useMutation >,并在组件中调用该变异。
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来实现GraphQL。您可以根据您的需求和项目来进一步扩展和调整这些示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI