npm 包 graphql-normalizer 使用教程

在现代前端开发中,前端应用往往需要和后端接口进行交互。GraphQL 是一种新型的 API 框架,虽然它已经有一段时间了,但是很多开发者仍然不是很熟悉,尤其是在前端领域。在使用 GraphQL 进行数据交互的过程中,我们经常需要对返回的数据进行统一化的处理和缓存,这时候就需要使用到 graphql-normalizer 这个 NPM 包。

graphql-normalizer 简介

graphql-normalizer 是由 Apollo 开发的一款用于对 GraphQL 查询返回的 JSON 数据进行规范化处理的工具包,它可以将 GraphQL 查询结果从多种不同的结构转换为一个规范化的、扁平化的对象,遵循 Relay 规范。相比之下,原始的 GraphQL 响应往往包含了大量的嵌套结构,容易导致冗余数据和性能问题。

graphql-normalizer 还支持对 GraphQL 查询结果进行缓存和比较,以减少网络带宽和提高程序效率。如果你正在构建一个 React 应用,使用 Apollo Client 来管理后端数据,那么 graphql-normalizer 将是一个不可或缺的工具。

安装与使用

首先,你需要在你的项目中安装 graphql-normalizer:

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

接下来,你需要导入 graphql-normalizer:

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

然后,你可以使用 normalize 函数对 GraphQL 查询结果进行规范化。假设你的查询如下:

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

如果你直接将这个查询的结果存储为一个对象,那么它的结构将类似于这样:

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

这个结构很难处理,并且很可能会导致冗余数据。使用 graphql-normalizer,你可以将它转化为一个扁平化的、规范化的对象:

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

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

这个对象的结构更加清晰,具有更高的可读性和可维护性。你可以在你的应用中直接使用它,而不需要对原始结果进行额外的处理。

缓存

除了对查询结果进行规范化处理,graphql-normalizer 还支持对查询结果进行缓存。这样,当你发起一个新的查询时,你可以优先使用缓存中的数据,而不必向服务器重新请求数据。

首先,你需要定义一个用于存储缓存数据的对象:

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

每当你发起一个新的查询请求时,你可以先检查缓存中是否已经存在该查询的结果:

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

通过将规范化后的数据存储在缓存对象中,你可以在之后的查询中直接使用它们,而不必重新请求服务器。这将大大提高你的应用的性能和网络效率。

总结

graphql-normalizer 是一个非常有用的 NPM 包,它可以帮助你对 GraphQL 查询结果进行规范化处理和缓存。使用它,你可以避免冗余数据和网络性能问题,提高应用的效率和性能。如果你的应用需要与 GraphQL 接口交互,那么你一定要尝试使用 graphql-normalizer。

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


猜你喜欢

  • npm 包 @terraeclipse/idgen 使用教程

    简介 在前端开发中,我们通常需要生成各种 ID。而 @terraeclipse/idgen 这个 npm 包可以帮助我们快速生成唯一的 ID。本文将介绍如何使用 @terraeclipse/idgen...

    2 年前
  • npm 包 nativescript-emoji 使用教程

    在移动应用中使用表情符号已经成为一种基本的传达情感和表达方式。nativescript-emoji 是一个 npm 包,它提供了一种简单的方式来在 NativeScript 应用中集成表情符号。

    2 年前
  • npm 包 package-pirate 使用教程

    简介 package-pirate 这个 npm 包是一个提供解决包版本冲突的工具,能够分析你的项目,检测模块之间的版本冲突,并帮助你解决这些问题。在现代的前端工程中,我们通常会使用很多 npm 包,...

    2 年前
  • 介绍 npm 包 yama-stream 的使用教程

    在前端开发中,我们经常需要处理大数据流,例如,对于一个视频文件或者音频文件,我们需要进行不同的处理,例如实时的数据分析、数据传输、加密等。为了便于处理这些大数据流,有一款很好的 npm 包 —— ya...

    2 年前
  • NPM 包 @shiftkey/octokat 的使用教程

    前端开发是一项快速发展的技术,而现代前端开发离不开一些方便的工具和框架来优化工作流程。其中,npm 包是一个必不可少的部分。本文将会详细介绍一个重要的 npm 包 @shiftkey/octokat ...

    2 年前
  • npm 包 ardethian-custom-scrollbar-plugin 使用教程

    介绍 ardethian-custom-scrollbar-plugin 是一个适用于前端开发的npm包,它提供了一种简单的方式来自定义网页上的滚动条。该插件基于 jQuery 实现,易于使用,同时还...

    2 年前
  • npm 包 get-shit 使用教程

    随着前端技术的不断发展,Node.js 和 npm 成为了前端开发不可或缺的一部分。而 npm 包也因此成为了开发中必不可少的资源。在本文中,我将为大家介绍一个有趣而实用的 Npm 包:get-shi...

    2 年前
  • npm 包 gg-jwt 使用教程

    前言 随着前端开发的快速发展,越来越多的开发者从后端转向前端。而 Token 的鉴权方式也逐渐广泛地应用在前端开发中。JWT(JSON Web Token)是一个轻量级的身份验证和授权方式,已经成为前...

    2 年前
  • npm 包 uppercase-values 使用教程

    概述 在前端开发过程中,经常会对数组或对象中的值进行大小写转换。而 npm 上有一个非常实用的包 uppercase-values 可以一步到位完成这个操作。本文将介绍如何使用这个包及其相关知识。

    2 年前
  • npm 包 jspos2 使用教程

    前言 前端开发离不开各类工具和库的支持,其中 npm 是一个不可或缺的工具,它可以让我们更方便地管理和使用各种开源包。本文将介绍一款 npm 包 jspos2 的使用方法,它是一个专门用于中文分词和词...

    2 年前
  • npm 包 renaissance-test-html-reporter 使用教程

    在前端开发和测试中,对于测试结果的记录和分析是非常重要的。renaissance-test-html-reporter 就是一个用于生成 HTML 测试报告的 npm 包。

    2 年前
  • npm包@johan-sports/subdevil使用教程

    在前端开发中,我们经常需要使用各种第三方库和工具来帮助我们完成任务。而npm就是一个包管理工具,它可以让我们方便地安装、更新、卸载和分享自己的包。其中,@johan-sports/subdevil就是...

    2 年前
  • npm 包 chain-able-server 使用教程

    什么是 chain-able-server? chain-able-server 是一个基于 Node.js 的 Web 服务器,它使用了链式调用的方式来构建路由和中间件。

    2 年前
  • npm 包 egg-ioredis 使用教程

    前言 随着互联网的高速发展,前端开发逐渐成为技术发展的一个重要方向。在前端开发中,使用 npm 包是一个司空见惯的事情。本文将介绍一款常用的 npm 包 - egg-ioredis,并详细讲解如何使用...

    2 年前
  • npm 包 homebridge-hue-weather 使用教程

    通过使用npm包homebridge-hue-weather,我们可以轻松地将Philips Hue灯与天气数据集成在一起,让我们的家庭自动地改变灯光和色彩,以反映当地的天气情况。

    2 年前
  • npm 包 react-conditional-renderer 使用教程

    前言 React 是现在最受欢迎的前端框架之一,其组件化的开发思想和性能优化的设计使得 React 良好地适应了现代前端开发的需求。其中用于渲染组件的 render() 方法是 React 最为关键的...

    2 年前
  • npm 包 vue-compiler-amd 使用教程

    在前端开发中,Vue.js 是目前使用最广泛的前端框架之一。它简化了 HTML、CSS 和 JavaScript 的处理。而 npm 是 JavaScript 世界的包管理器,用来分享和发现开源模块。

    2 年前
  • npm包 vcp-spa-component 使用教程

    VCP-Spa-Component是一款前端npm包,用于在Vue.js和React.js SPA应用程序中集成和使用VCP(Virtual Customer Assistant)聊天机器人的Web组...

    2 年前
  • npm 包 git-helper 使用教程

    在前端项目开发中,Git 是一个必备的版本控制工具。而在 Git 的应用过程中,有时候我们需要对一些特定的情况进行处理,比如合并冲突、分离分支等。在这种情况下,我们需要借助一些 Git 工具来完成这些...

    2 年前
  • npm 包 generator-min-react-hmr-wp-2 使用教程

    在前端开发中,我们经常需要使用各种工具来完成开发任务。其中,npm 包是一个不可或缺的工具,可以帮助我们更加高效地完成前端开发任务。本文将介绍一个生成 React、使用 HMR 和 Webpack 配...

    2 年前

相关推荐

    暂无文章