npm 包 react-apollo-hooks 使用教程

在前端开发中,React 和 Apollo 并非陌生的技术,React 作为一款流行的前端 UI 库,而 Apollo 则是一个优秀的 GraphQL 客户端。

在使用 Apollo 过程中,它提供了许多能力,包括一些钩子函数,但是它的使用有时会让我们感觉繁琐。而在这种情况下,react-apollo-hooks 这个 npm 包的出现为我们提供了便利。

本文将介绍如何使用这个 npm 包,并提供一些示例代码。

安装

首先,在你的 React 项目中安装 react-apollo-hooks 包:

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

接下来,你需要使用这个包中的钩子来获取数据。

简单使用

我们将从最基本的例子开始。

首先,在你的应用中引入 Apollo 客户端并创建 GraphQL 查询。例如我们将从后端 API 获取一本图书的信息:

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

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

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

然后,使用 useQuery 钩子函数来获取这个查询返回的数据:

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

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

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

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

钩子函数

react-apollo-hooks 提供了三个不同的钩子,让我们可以使用它们在 React 组件中轻松地和 Apollo 进行交互。这些钩子包括:

  • useQuery - 获取 GraphQL 查询中返回的数据;
  • useMutation - 执行 GraphQL 变更操作并获取返回的数据;
  • useSubscription - 使您的组件通过 WebSocket 订阅 GraphQL 数据。

在这篇文章中,我们重点关注 useQuery 钩子函数,但请注意其他钩子也非常有用。

使用环境

由于 react-apollo-hooks 是基于 hook 的,因此它需要使用 React 16.8+,这也是 React 添加 hook 的版本。

如果您的项目已经使用了早期版本的 React,请考虑升级到新版本,您可能会发现使用 hooks 能够极大地提升代码的可读性和可维护性。

附加功能

钩子函数的输入

在我们最开始的示例中,我们已经介绍了 useQuery 中的 queryvariables 参数,那么除此之外,它还支持哪些输入呢?

  • query - 必填,用于指定 GraphQL 查询;
  • variables - 用于指定查询参数;
  • fetchPolicy - 指定数据获取策略;
  • errorPolicy - 指定错误处理策略;
  • skip - 指定查询是否立即执行;
  • displayName - 指定用于调试的组件名称。

useMutation

useMutation 钩子函数用于执行 GraphQL 中的变更操作,它有两个参数,一个是变更操作,另一个是钩子的输入。

在下面的示例中,我们将使用 useMutation 钩子来添加一个新的书籍记录:

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

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

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

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

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

useSubscription

最后一个钩子函数 useSubscription 用于在 WebSocket 上订阅 GraphQL 数据流。

在这个示例中,我们将订阅一个聊天室的消息数据流:

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

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

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

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

总结

在该教程中,我们介绍了如何安装、使用 react-apollo-hooks npm 包,以及其提供的钩子函数,我们看到使用它们能够轻松快速地获取 GraphQL 查询,执行变更操作,以及订阅数据流。

这个 npm 包非常有用,如果您正在使用 Apollo 进行 GraphQL 开发,我强烈建议您试用一下它。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/the-react-apollo-hooks


猜你喜欢

  • npm 包 match-routes 使用教程

    介绍 在前端开发过程中,我们经常需要根据 URL 地址显示不同的内容或页面。match-routes 是一个 npm 包,用于路由匹配以确定在给定 URL 地址下哪个组件需要被渲染。

    5 年前
  • npm 包 accountdown-model 使用教程

    简介 accountdown-model 是一个基于 accountdown 的身份验证库,用于在前端网站中管理用户信息和会话状态。它提供了一个名为 model 的对象,可以用于编写自定义的身份验证逻...

    5 年前
  • npm 包 accountdown-basic 使用教程

    在前端开发中,我们经常需要进行用户鉴权、用户登录等操作。为了简化这些操作,我们可以使用 npm 包中的 accountdown-basic。本文将介绍该 npm 包的使用教程。

    5 年前
  • npm 包 accountdown 使用教程

    前言 accountdown 是一个 Node.js 的 npm 包,可用于创建可扩展的简单用户认证系统。它是一个非常有用的工具,尤其是在构建 Web 应用程序时,它可以使用户注册、登录和管理变得更加...

    5 年前
  • npm 包 accept-encoding 使用教程

    什么是 accept-encoding? accept-encoding 是一个 npm 包,它涉及 HTTP 请求头和响应头中的内容编码机制。它允许你在 HTTP 请求头中指定你可能喜欢接收什么样的...

    5 年前
  • npm包random-access-alias使用教程

    需求概述 在前端页面中,有时候需要加载大量的数据或文件,为了优化用户体验,我们需要分块加载,这时候就需要使用分块读取数据的方式。random-access-alias 是一个用于创建分块读取流的npm...

    5 年前
  • npm 包 sequentialise 使用教程

    在前端开发中,有时需要按照特定的顺序执行一些异步任务,比如读取文件、发送请求等等,并且在执行时需要保证顺序不被打乱。这个时候,一个名叫 sequentialise 的 npm 包就可以帮你解决这个问题...

    5 年前
  • npm 包 open-packaging-format 使用教程

    前言 随着前端开发的发展,我们需要使用越来越多的 npm 包,这些包在日常的工作中能够为我们带来极大的便利,使我们能够更快地完成工作。但是随着 npm 包越来越多,管理这些包也变得越来越复杂,我们不仅...

    5 年前
  • npm 包 dat-storage 使用教程

    简介 dat-storage 是一个基于 Dat 协议的 npm 包,它提供了一种简单、快速和可靠的方式来存储和共享数据。使用 dat-storage,您可以轻松地将数据存储在本地或分布式网络上,并与...

    5 年前
  • npm 包 dat-protocol-buffers 使用教程

    在前端开发中,我们经常需要处理二进制数据。Protocol Buffers 是一种可扩展的序列化格式,能够高效地编码/解码数据,同时支持跨语言和平台。 dat-protocol-buffers 是一个...

    5 年前
  • npm 包 dat-collections 使用教程

    在前端开发中,有许多优秀的 npm 包可以使用来简化开发流程和提高效率。今天我们要介绍的是一个叫做 dat-collections 的 npm 包,它为数据集合和数据类型提供了一系列的工具和函数。

    5 年前
  • npm 包 dat-cardcat-formats 使用教程

    在前端开发领域中,npm 是一个非常重要的工具。它为我们提供了海量的第三方库,让我们可以快速地搭建出自己的应用。今天我们要介绍的是一个非常实用的 npm 包 dat-cardcat-formats,它...

    5 年前
  • npm 包 another-name-parser 使用教程

    在前端开发中,我们经常需要对姓名进行处理,而 another-name-parser npm 包则提供了一种简单易用的方式来处理姓名信息。本篇文章将介绍这个 npm 包的使用方法,并深入探讨其内部实现...

    5 年前
  • npm 包 readable-size 使用教程

    简介 readable-size 是一个 npm 包,它可以将字节数转换为可读性更好的大小单位,如 KB,MB,GB 等。在前端开发中,我们常常需要将文件大小转换为人类可以理解的格式,这时就可以使用 ...

    5 年前
  • npm 包 mini-signals 使用教程

    简介 mini-signals 是一款轻量级事件库,提供了一个简洁的API,可以轻松地在项目中添加事件。 mini-signals库主要重点在于大小,它仅约有1kb的大小,使其成为轻松置于任何项目中的...

    5 年前
  • npm 包 fetch-yode 使用教程

    什么是 fetch-yode fetch-yode 是一个基于原生 fetch 的封装库,旨在解决一些 fetch 存在的问题,例如: 不支持 timeout,fetch-yode 提供 timeo...

    5 年前
  • npm 包 ngx-ui-switch 使用教程

    前言 ngx-ui-switch 是一个 Angular 的 UI 组件库,提供了一个自定义的开关按钮,可用于实现任何类似于“开启/关闭”或“选中/未选中”的场景。

    5 年前
  • npm 包 link-media-html-webpack-plugin 使用教程

    前言 随着前端技术的不断发展,前端工具的数量也日益增多。其中,Webpack 是一个非常流行的前端打包工具,而 npm 是一个包管理工具,以其简单易用和丰富的库资源,成为了前端开发者的首选。

    5 年前
  • npm 包@ag-grid-enterprise/all-modules 使用教程

    简介 @ag-grid-enterprise/all-modules是一款由 Ag Grid 公司开发的企业级 JavaScript 表格库,拥有许多强大的功能。 如果你使用这个库,你必须先安装它。

    5 年前
  • npm 包 @leapdev/gui-icons 使用教程

    前言 在前端开发中,我们经常需要使用图标来美化界面和提高用户的交互体验。在此过程中,使用了 webpack、Vue、React、TypeScript 等前端技术的开发人员们可能遇到了一些困难,如何在项...

    5 年前

相关推荐

    暂无文章