GraphQL 教程:如何使用 Apollo 客户端在 React 中查询 GraphQL 数据?

阅读时长 4 分钟读完

GraphQL 是一种查询语言,旨在简化应用程序对 API 的数据获取请求。它是一个相对新的技术,但已经在前端开发中得到了广泛的应用。在这篇文章中,我们将介绍如何使用 Apollo 客户端在 React 中查询 GraphQL 数据。

环境配置

在开始之前,我们需要安装一些依赖项。我们需要安装 react, react-dom, graphql, graphql-tag@apollo/client

接下来,我们需要在我们的 React 项目中创建一个 Apollo 客户端。我们可以通过以下方式:

通过这段代码创建了一个 Apollo 客户端,传递了一个 uri,指向我们的 GraphQL API 的端点,以及一个缓存对象。这个缓存对象可以用来存储我们从 API 获取的数据,以便以后使用。

我们现在已经配置好了环境,接下来,让我们看一下如何编写一个 GraphQL 查询。

编写 GraphQL 查询

想要查询 GraphQL 数据,我们需要使用 GraphQL 查询语言。例如,我们可以通过以下方式创建一个查询:

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

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

在这个简单的查询中,我们查询了一个名为 users 的字段,并选择了其 idnameemail 属性。

现在我们已经编写了一个查询,让我们看一下如何在 React 中使用 Apollo 客户端查询数据。

在 React 中查询数据

我们可以使用 useQuery 钩子函数,它可以帮助我们从 Apollo 客户端中获取数据。例如,我们可以使用以下代码来查询我们在上面定义的 GET_USERS 查询:

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

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

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

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

在这个示例中,我们使用了 useQuery 钩子函数来查询我们在上面定义的 GET_USERS 查询。useQuery 钩子函数返回了一个包含 loadingerrordata 属性的对象。这些属性分别反映了当前数据加载的状态,任何错误以及我们从 API 中获得的数据。

如果我们的数据正在加载中,我们将显示一个带有 “Loading...” 的段落。如果我们在查询时遇到了错误,我们将显示一个带有 “Error :(” 的段落。否则,我们将从返回的数据中映射出每个用户的 nameemail

我们现在已经成功地查询了 GraphQL 数据,请记住,您可以通过查询多个字段和嵌套类型来编写更复杂的查询。

结论

在这篇文章中,我们介绍了如何使用 Apollo 客户端在 React 中查询 GraphQL 数据。我们先引入了所需的依赖项,然后生成了 Apollo 客户端实例。接着,我们编写了一个简单的 GraphQL 查询,并使用 useQuery 钩子函数,在应用程序中查询了这个查询。

GraphQL 是一个非常强大的技术,可以帮助我们简化对 API 的数据获取请求。在使用 GraphQL 时,可以通过配置客户端并编写查询来开始。我们希望这篇文章能够帮助您了解如何在 React 中查询 GraphQL 数据,并为您的项目提供指导和启示。

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

纠错
反馈