npm 包 graphql-react 使用教程

前言

GraphQL 是一种面向数据的新一代 API,它可以更方便地让前端工程师从服务端获得数据,GraphQL-react 是一个方便的 React 组件集,它提供了一组用于自动生成和更新 GraphQL 数据的挂钩,本文将介绍如何使用 npm 包 graphql-react。

安装

在命令行中运行以下命令进行安装:

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

使用

开始

首先要导入 ApolloProvidercreateApolloClient 并将 ApolloProvider 包装到你的 React 组件外层。以 App 组件为例:

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

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

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

这里使用 createApolloClient 方法提供 Apollo-Client 的配置,使得 GraphQL-react 可以获取系统上下文,进而方便地与 GraphQL 服务器交互。

注意事项

在使用 graphql-react 时,需要注意以下几点:

  • query 或 mutation 必须包含 name,delete 或 update 方法;
  • 如果查询和变异中包含对同一对象和同一字段的冲突,请使用创意命名方法更改名称;
  • 使用短命名来标识每个查询或变异,在将它们重组在一起时可以避免纠缠在一起的查询。

查询

GraphQL-react 支持查询数据之间的关系,查询语句可以从服务器获取一组数据。我们来看一个简单的查询例子,假设我们想从服务器上获取用户信息,我们使用以下语句:

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

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

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

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

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

我们使用 graphql 函数装饰器将查询与我们的组件链接起来。这是一个高阶组件,它提供用户信息和一个由 Apollo-Client 自动生成的函数。

变异

GraphQL-react 也支持使用变异从客户端向服务器更改数据。与查询一样,必须指定名称、delete 或 update 方法。我们使用以下语句插入一个新的任务:

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

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

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

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

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

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

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

需要注意的是,变异(以及查询)不仅仅是 graphql-react 与 Apollo-Client 的交互方式。在变异之前可以调用代码,并将该代码作为 pre-mutation 参数传递。同样,变异数组可以与其他函数调用链接。

错误处理

GraphQL-react 确保重新渲染查询或变异之后显示由服务器或客户端抛出的错误。这可以通过添加一个处理错误回调函数,通常是一个错误提示组件来实现,如下所示:

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

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

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

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

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

结束语

在本篇文章中,我们介绍了如何使用 graphql-react,使应用能够更方便地与 GraphQL 服务器交互。GraphQL-react 提供了许多高效的方法和抽象,它可以让你以更少的代码和更少的时间来处理复杂的数据操作,从而使你能够更多地关注应用程序的设计和用户体验。

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


猜你喜欢

  • npm 包 @types/babylon 使用教程

    介绍 在前端开发中,我们经常需要进行代码解析。而 Babylong 是一个非常流行的 JavaScript 代码解析器。为了让 TypeScript 开发者能够更好地使用 Babylon,社区开发了 ...

    5 年前
  • npm 包 @types/babel-template 使用教程

    概述 Babel 是一个广泛使用的 JavaScript 编译器,它可以将最新版本的 JavaScript 转换成可以在当前浏览器中运行的版本。在 Babel 中,模板被称为“模板字符串”,它们允许您...

    5 年前
  • npm 包 @types/babel-generator 使用教程

    在前端开发中,Babel 是一个非常常用的编译工具,它可以将 ES6+ 写的代码编译成 ES5 的语法,以便于浏览器的兼容。而 @types/babel-generator 则是 Babel 的代码生...

    5 年前
  • npm 包 @atlas.js/atlas 使用教程

    本文介绍了如何使用npm包@atlas.js/atlas进行前端开发。 简介 @atlas.js/atlas 是一个基于 JavaScript 的前端应用程序开发框架。

    5 年前
  • 详解 npm 包 @atlas.js/service 的使用

    前言 在前端开发中,使用 npm 包是非常普遍的。npm 包的使用可以大大提高开发效率,同时也有很多成熟的 npm 包可供选择。 本文将介绍一个名为 @atlas.js/service 的 npm 包...

    5 年前
  • npm 包 @atlas.js/hook 使用教程

    什么是 @atlas.js/hook @atlas.js/hook 是一个 Node.js 模块,它提供了一个灵活且易于使用的钩子系统,可以用于在 Node.js 应用程序中实现插件、中间件或模块。

    5 年前
  • npm 包 @atlas.js/errors 使用教程

    在前端开发过程中,错误处理是一个必要的环节。npm 包 @atlas.js/errors 是一个前端错误处理库,提供了一种方便的方式来处理和记录错误,支持多种级别的错误和日志记录,同时也提供了很多有用...

    5 年前
  • npm 包 @atlas.js/action 使用教程

    简介 在前端开发过程中,我们经常需要封装一些通用的方法或者组件,以便于复用。npm 是一个非常强大的 Node.js 包管理工具,它可以方便我们管理依赖、发布与安装包。

    5 年前
  • npm 包 tsyringe 使用教程

    在前端开发中,依赖注入(Dependency Injection)是一种非常重要的设计模式。它可以帮助我们减少代码的耦合度,提高代码的复用性和可测试性。tsyringe 是一款可以实现依赖注入的 np...

    5 年前
  • npm 包 tslint-config-shopify 使用教程

    简介 tslint 是一个 TypeScript 代码静态分析工具,用于在开发过程中标记潜在问题和编码样式错误,并提供指导意义,以增强代码质量和可维护性。tslint-config-shopify 是...

    5 年前
  • npm 包 @types/lodash.zip 使用教程

    什么是 @types/lodash.zip? 在前端开发中,经常需要引用lodash这个工具库,其提供了许多便捷的工具函数。为了更好的使用lodash,我们需要安装它的类型声明文件,而这个类型声明文件...

    5 年前
  • npm 包 @geekcojp/tslint-config 使用教程

    简介 @geekcojp/tslint-config 是一个 TSLint 配置项的 npm 包,该包的主要目的是提供一套适用于日本的前端开发环境的 TSLint 规则。

    5 年前
  • npm 包 @types/lodash.compact 使用教程

    在开发前端应用程序的过程中,经常会使用到 JavaScript 库的各种功能,以便加速开发过程。lodash 是一个非常流行的 JavaScript 工具库,它为开发人员提供了大量的实用工具函数。

    5 年前
  • NPM 包 @focus4/toolbox 使用教程

    前言 随着前端技术的不断发展,现在的前端工程师更多地面临着大量的工具和框架的选择。其中一个很重要的选择便是 npm 包的选择。npm 是一个前端开发者不可缺少的工具,今天我们将介绍一个非常棒的 npm...

    5 年前
  • npm 包 @focus4/styling 使用教程

    介绍 @focus4/styling 是一个前端样式库,主要用于 React 应用的开发。它提供了一系列样式,包括常用的布局和样式组件,以及一些工具函数。 该库是基于 CSS-in-JS 技术实现的,...

    5 年前
  • npm 包 @focus4/stores 使用教程

    前言 在 Web 前端开发中,数据状态管理是极其重要的一环。为了解决数据状态的管理问题,市面上涌现出了很多优秀的解决方案。而其中,@focus4/stores 是一款优秀的数据状态管理工具,它提供了完...

    5 年前
  • npm 包 @focus4/layout 使用教程

    简介 @focus4/layout 是一款面向前端开发者的开源 npm 包,提供了一些常见的布局组件,可以帮助开发者快速构建页面布局。这些组件旨在提高开发效率,减少冗余代码的出现。

    5 年前
  • npm 包 @focus4/forms 使用教程

    介绍 在前端开发中,表单是一个不可避免的部分。@focus4/forms 是一个在 Vue.js 中使用的数据驱动表单处理库。它通过表单数据模型来构建表单,并定义表单规则和验证。

    5 年前
  • npm 包 @focus4/core 使用教程

    在前端开发中,我们经常需要使用各式各样的库和工具来提高我们的工作效率和开发体验。npm 包是面向 Node.js 开发的模块化包管理工具中一个重要的组成部分。在本文中,我们将会介绍 npm 包 @fo...

    5 年前
  • npm包@focus4/collections使用教程

    简介 @focus4/collections 是一个遵循ECMAScript2015规范的JavaScript库,通过提供一系列的数据集合类型和方法,为开发者简化复杂数据结构的操作。

    5 年前

相关推荐

    暂无文章