使用 GraphQL 和 Apollo Client 构建 React 前端

阅读时长 6 分钟读完

GraphQL 是一种用于 API 开发的查询语言和规范,它允许客户端精确地指定需要的数据。与 REST API 不同,它具有更高的灵活性和可扩展性,使得前端可以更加有效地管理 API 中的数据。

Apollo Client 是一个功能丰富的 GraphQL 客户端,它可以与 React 紧密集成,为我们提供了许多可以简化前端开发的工具和方法。

安装

在开始构建 React 和 GraphQL 应用程序之前,需要先安装一些必要的软件包。请确保已经安装了以下软件包:

接下来,我们可以使用以下命令来创建一个新的 React 应用程序:

安装 Apollo Client 和相关依赖项:

配置

在 React 应用程序中使用 Apollo Client 时,需要对其进行配置。可以使用 ApolloProvider 组件来提供 Apollo 客户端的使用。这个组件需要以下属性:

  • client: Apollo 客户端实例

index.js 文件中,我们可以使用以下代码来创建一个 Apollo 客户端实例:

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

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

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

在上面的代码中,我们创建了一个 Apollo 客户端实例,并将其传递给 ApolloProvider 组件。我们需要将 <GraphQL 服务器 URL> 替换为实际的 GraphQL 服务器 URL。

查询数据

使用 Apollo Client 时,我们可以使用 Query 组件来发出 GraphQL 查询。这个组件需要以下属性:

  • query: GraphQL 查询语句
  • children: 渲染函数,用于渲染查询结果

在以下代码中,我们将查询一个用户的用户名和电子邮件。使用模板字符串定义 GraphQL 查询语句,并将其作为 query 属性传递给 Query 组件。在 children 属性中,我们使用渲染函数返回查询结果。

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

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

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

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

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

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

更新数据

在应用程序中,我们可能需要更新数据并将其提交到服务器上。我们可以使用 Apollo Client 中的 Mutation 组件来完成这个任务。这个组件需要以下属性:

  • mutation: GraphQL 变异语句
  • update: 函数,用于在修改数据后更新缓存
  • onCompleted: 函数,当变异完成时调用

在以下代码中,我们将更改用户的电子邮件地址。使用模板字符串定义 GraphQL 变异语句,并将其作为 mutation 属性传递给 Mutation 组件。在 update 属性中,我们将 email 赋值给新的值。

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

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

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

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

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

总结

在本文中,我们介绍了如何使用 GraphQL 和 Apollo Client 构建 React 前端。我们学习了如何配置 Apollo 客户端、发出 GraphQL 查询和更新数据并将其提交到服务器上。GraphQL 和 Apollo Client 为前端开发带来了更高的灵活性和可扩展性,帮助开发人员更加有效地管理 API 中的数据。

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

纠错
反馈