在 React 中使用 GraphQL 和 Apollo(实战教程)

阅读时长 6 分钟读完

GraphQL 是一种新兴的数据查询语言,它能够让我们更加高效地获取我们需要的数据。而 Apollo 则是一个强大的 GraphQL 客户端库,它能够帮助我们在 React 中更加轻松地使用 GraphQL。本文将介绍如何在 React 中使用 GraphQL 和 Apollo,并提供实战教程和示例代码。

1. 安装 Apollo

首先,我们需要安装 Apollo。可以使用以下命令安装:

2. 配置 Apollo Client

接下来,我们需要配置 Apollo Client。首先,我们需要创建一个 ApolloClient 的实例。可以使用以下代码:

在这里,我们指定了 GraphQL 服务器的地址。如果你的服务器在本地运行,则可以使用 http://localhost:4000/graphql。

3. 编写 GraphQL 查询

现在,我们需要编写我们的 GraphQL 查询。我们可以使用 GraphQL 的查询语言来编写查询。例如,以下是一个简单的查询:

这个查询将返回所有图书的标题和作者。

4. 在 React 中使用 GraphQL 和 Apollo

接下来,我们需要在 React 中使用 GraphQL 和 Apollo。我们可以使用 react-apollo 库来实现这一点。首先,我们需要导入 gql 函数和 Query 组件:

然后,我们可以使用 gql 函数来将我们的 GraphQL 查询转换为一个可用的查询。例如,以下是我们之前编写的查询:

现在,我们可以在 React 中使用 Query 组件来获取数据。例如,以下是一个简单的组件,它将获取我们的图书数据并将其呈现为列表:

-- -------------------- ---- -------
------ ----- ---- --------
------ - --- - ---- ---------------
------ - ----- - ---- ---------------

----- --------- - ----
  ----- -
    ----- -
      -----
      ------
    -
  -
--

----- -------- - -- -- -
  ------ ------------------
    --- -------- ------ ---- -- -- -
      -- --------- ------ ------------------
      -- ------- ------ -------- -------

      ------ -
        ----
          -------------------- -- -
            --- -----------------
              ---------------------
              ----- -----------------
            -----
          ---
        -----
      --
    --
  --------
--

------ ------- ---------

在这里,我们使用 Query 组件来获取我们的图书数据。如果数据正在加载,则显示“加载中...”消息。如果出现错误,则显示“错误 :(”消息。否则,我们将数据呈现为一个列表。

5. 缓存和更新数据

最后,我们需要考虑缓存和更新数据的问题。Apollo Client 会自动缓存查询结果,并且可以使用 Mutation 组件来更新数据。例如,以下是一个简单的组件,它将更新我们的图书数据:

-- -------------------- ---- -------
------ ----- ---- --------
------ - --- - ---- ---------------
------ - -------- - ---- ---------------

----- -------- - ----
  -------- --------------- -------- -------- -------- -
    -------------- ------- ------- -------- -
      -----
      ------
    -
  -
--

----- ------- - -- -- -
  --- -----------
  --- ------------

  ------ -
    --------- --------------------
      ---------- - ---- -- -- -
        -----
          -----
            ----------- -- -
              -------------------
              ---------
                ---------- -
                  ------ -----------------
                  ------- ------------------
                --
              ---
              ---------------- - ---
              ----------------- - ---
            --
          -
            ------
              --------- -- -
                ---------- - -----
              --
              -------------------
            --
            ------
              --------- -- -
                ----------- - -----
              --
              --------------------
            --
            ------- ----------------- -------------
          -------
        ------
      --
    -----------
  --
--

------ ------- --------

在这里,我们使用 Mutation 组件来更新我们的图书数据。当表单被提交时,我们调用 addBook 函数来添加新的书籍。然后,我们清空输入框中的值。

结论

现在,你已经学会了如何在 React 中使用 GraphQL 和 Apollo。我们已经介绍了如何安装 Apollo,配置 Apollo Client,编写 GraphQL 查询,以及在 React 中使用 GraphQL 和 Apollo。此外,我们还介绍了如何缓存和更新数据。希望这篇文章能够帮助你更好地理解 GraphQL 和 Apollo,并在实际项目中使用它们。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6757bd08890bd9faa438041b

纠错
反馈