npm 包 gullitmiranda-apollo-upload-client 使用教程

前言

随着网络技术的不断发展,前端同学对于文件上传的需求也越来越高,而使用传统的表单方法进行文件上传也已经逐渐过时。在 React 生态系统中,相信大家都知道 Apollo 这个库,它是一个 GraphQL 客户端工具集,提供了 Reactive 数据架构、缓存处理、查询构建等强大的功能。本文就要为大家介绍一个基于 Apollo 的文件上传工具——gullitmiranda-apollo-upload-client。

安装

首先,我们需要将此工具安装到我们的项目中。可以使用 npm/yarn 来安装:

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

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

使用方式

安装完成后,我们就可以在项目中引入它:

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

那么,接下来就是使用的方法了。

第一步:创建 HttpLink

创建 HttpLink 步骤与一般使用 Apollo Client 所示例化的方法一样:

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

第二步:创建 Apollo Client

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

第三步:创建 UploadLink

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

注意:此处 createUploadLink() 函数默认将文件上传处理的模式设置为 "single"。

第四步:创建 Apollo Client

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

示例代码

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

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

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

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

配置选项

模式设置

通过设置 "single" 或 "multiple" 两种上传模式,来指定上传器可以上传几个文件。如果没有指定,它默认为 "single"。

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

自定义 Headers

如果你需要为请求头部添加自定义的 Headers,你可以使用 "headers" 属性,通过函数或者常规对象来添加。

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

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

自定义文件字段名称

使用者可以通过 "fieldName" 属性对请求中的文件字段名称进行自定义设置。如果你不设置,将默认为 "file"。

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

自定义文件类型

如果需要精确控制上传文件的 MIME 类型(例如,当解决浏览器黑名单的情况时),你可以使用 "getFileType" 属性自定义设置。

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

自定义上传中间件

我们可以通过 createUploadLink 方法下的 HttpLink 函数,来创建我们的自定义上传中间件。

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

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

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

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

结论

本文为大家介绍了在基于 Apollo 的 GraphQL 客户端中,如何使用 npm 包 gullitmiranda-apollo-upload-client 来进行文件上传。通过本文提供的使用方式、示例代码以及配置选项,希望可以帮助更多的同学们在实际开发中更便捷地实现此功能。

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


猜你喜欢

  • npm 包 jddj-generator-vue 使用教程

    在前端开发中,经常会使用一些自动化工具来快速生成项目或者模块的代码文件。其中,jddj-generator-vue 是一个可以快速生成基于 Vue.js 的前端项目骨架的 npm 包。

    3 年前
  • npm 包 postcss-tree-shaking 使用教程

    在前端开发中,我们经常会使用一些 CSS 预处理器和工具来简化和优化 CSS 的编写和管理。其中,在 CSS 的优化中,Tree Shaking 技术可以减少未使用的样式的打包体积,从而优化网站的性能...

    3 年前
  • npm 包 rds-spinner 使用教程

    前言 在前端开发中,经常需要在异步操作时添加一个上传中、加载中的动画效果,为用户提供更好的交互体验。rds-spinner 是一个基于 CSS3 动画的 npm 包,提供了多种不同样式的加载图标,可供...

    3 年前
  • npm 包 gulp-cmdcompile 使用教程

    什么是 npm 包 gulp-cmdcompile? gulp-cmdcompile 是一个基于 Gulp 的前端构建工具,用于将 CMD 规范的 JavaScript 文件编译成浏览器能够运行的 J...

    3 年前
  • npm包ng-app-fw使用教程

    介绍 ng-app-fw是一个提供AngularJS框架的轻量级npm包,它可以为AngularJS应用提供一些常用的、易于使用的UI组件和服务。这篇文章将会介绍如何使用ng-app-fw,你将会学习...

    3 年前
  • npm 包 ababa 使用教程

    npm 是现代前端开发中必不可少的工具之一,它可以让我们方便地安装和管理各种 JavaScript 包。其中,ababa 是一个由 jsperf-abc 项目衍生出来的性能测试项目,它允许我们可以快速...

    3 年前
  • npm 包 walk-object-sync 使用教程

    在前端开发中,经常需要遍历对象或数组,我们一般使用 for 循环或 forEach 方法。但是当对象的嵌套层级比较深时,这种方式会显得非常繁琐。为了解决这个问题,可以使用 npm 包 walk-obj...

    3 年前
  • npm 包 dz-promise 使用教程

    前言 在前端开发中,我们经常需要处理异步请求、跨域请求等问题。这些问题一般都可以通过 Promise 来解决。而 Promise 是 JavaScript 中的一个重要概念,它是异步编程的解决方案之一...

    3 年前
  • npm 包 mrkd 使用教程

    在前端开发中,我们经常使用各种 npm 包来辅助我们的工作。其中,markdown 渲染是很常见的需求。本篇文章将介绍一个 npm 包 mrkd,它可以将 markdown 文本转换为 HTML,支持...

    3 年前
  • npm 包 node-accountkit 使用教程

    介绍 node-accountkit 是一个基于 Node.js 的 npm 包,用于与 Facebook 的 Account Kit 进行通信。Account Kit 是一个用户认证服务,可以允许用...

    3 年前
  • npm 包 @anilanar/workbox-webpack-plugin 使用教程

    前言 现在的 web 应用离不开离线支持,因为网络随时可能中断,而像在线游戏这类实时应用则需要以最大限度减少延迟的方式来提供最佳体验。Web 应用可以利用 Service Worker 实现离线支持和...

    3 年前
  • npm 包 @jsbx/get-params 使用教程

    前言 在前端开发中,我们经常需要从 URL 中获取参数来进行相应的操作,而获取 URL 参数的过程又不是非常直接和方便。@jsbx/get-params 正是针对这个问题而产生的 npm 包,它主要解...

    3 年前
  • npm 包 coastroad 使用教程

    什么是 npm 包 coastroad npm 包 coastroad 是一个基于 swagger-js 和 axios 的 Node.js 模块,用于快速、简单地连接和访问 RESTful API。

    3 年前
  • npm 包 dz-vue-event 使用教程

    简介 在 Vue.js 开发中,事件是一种非常重要的概念。Vue.js 通过自定义事件的方式实现组件之间数据的传递。然而,在某些情况下,Vue.js 自带的事件并不能完全满足我们的需求。

    3 年前
  • npm 包 unqr 使用教程

    本文将介绍 npm 包 unqr 的使用方法,详细介绍如何安装和引入 unqr,以及如何使用 unqr 生成和解析 QR 码。本教程适用于前端开发人员,并且具有学习和指导价值。

    3 年前
  • npm 包 repeat-it 使用教程

    在前端开发中,我们经常需要多次重复某个操作或者代码段,这时候就需要使用 repeat-it 这个 npm 包来解决这个问题。在本文中,我们将会介绍如何使用 repeat-it 包,并给出具体的示例代码...

    3 年前
  • npm包azure-iot-gateway-windows使用教程

    前言 Azure IoT Gateway是一个开源的模块化网关,可以将本地设备的数据进行处理和转换,从而与Azure IoT Hub进行通信。在Azure IoT Gateway中,每个模块都是一个M...

    3 年前
  • npm 包 cordova-plugin-sms-watch 使用教程

    前言 在现代社会中,短信作为一种传统的通信方式,依然被广泛使用。而对于一些需要接收短信的应用程序,需要一种便捷的方式来实现短信接收功能。为此,我们介绍了一款 npm 包,名为 cordova-plug...

    3 年前
  • npm 包 react-native-navigation-redux-helpers-compat 使用教程

    前言 React Native 是目前流行的跨平台移动应用开发框架,其提供了强大的基础组件和开发工具,但对于复杂的应用程序,我们可能需要使用 Redux 进行状态管理,以便更好地维护应用程序的状态变化...

    3 年前
  • npm 包 @lite-js/color 使用教程

    前端开发中,颜色应用广泛,常常需要对颜色进行转换、计算或者调整。@lite-js/color 是一个能够支持多种颜色格式转换、计算、调整的 npm 包,可以方便地应用在前端开发中。

    3 年前

相关推荐

    暂无文章