npm 包 @yantao0527/vux-uploader 使用教程

前言

上传图片是网站或应用开发中常见的功能,而基于 Vue.js 的移动端 UI 组件库 Vux 中也提供了一个上传组件 vux-uploader。虽然该组件的功能已经比较完备,但是我发现其中对于一些常用场景的支持还不够完善,于是我 fork 了 Vux 的源码,扩展了该组件的功能,并发布了一个新的 npm 包 @yantao0527/vux-uploader

本文介绍了如何使用这个扩展组件实现移动端图片上传的功能。

安装

可以通过 npm 或 yarn 安装 @yantao0527/vux-uploader

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

使用

和 Vux 原生的 vux-uploader 一样,我们需要在 Vue 的组件中引入 vux-uploader 组件,并使用 uploader 参数指定要上传的图片:

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

其中,url 参数指定上传文件的接口地址,uploader 参数传递了一个包含 formData 属性的对象,用来传递一些额外的参数,这些参数在后台接口中使用。

同时,我们传递了一个插槽子组件,用来展示上传的图片。

接着,在组件的 methods 中实现上传成功后的处理逻辑:

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

当上传成功后,onUploadSuccess 方法会被调用,其中 res 参数包含了后台返回的响应数据,file 参数包含了上传的文件信息。

更多功能

除了以上的功能外,@yantao0527/vux-uploader 还多了以下的一些扩展功能。

对上传图片大小的限制

在实际应用中,经常会碰到需要限制上传图片的大小的需求。我们可以在 vux-uploader 中增加 maxLength 属性,指定上传图片的最大大小(以 K 为单位):

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

在此例中,我们设置了上传图片大小为 1KB 以内。

对图片质量进行压缩

在移动端,由于手机照片的尺寸和大小普遍较大,如果直接上传这些照片到后台,不仅会占用大量的存储空间,而且还可能会导致上传速度很慢。因此,对上传图片做一些压缩处理,就变得十分必要。

@yantao0527/vux-uploader 的扩展版中,我们增加了 compression 属性,用来指定上传图片的压缩质量(取值范围为 0~1),例如:

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

在这个例子中,我们设定了图片的压缩质量为 70%。

自定义图片预览

当用户上传了一张图片后,我们通常需要展示预览图。 Vux 原生的 vux-uploader 中内置了一个展示预览图的组件 vux-uploader-preview,但是该组件的样式和展示方式可能并不符合我们的应用场景需要。

因此,我们将图片预览的功能开放出来,这样用户就可以根据自己的需要,自定义图片的展示方式。

我们可以在 onUploadSuccess 回调中对上传成功的图片进行自定义处理,例如展示到一个列表中:

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

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

在这个例子中,我们使用了一个 fileList 数据数组来保存上传成功的图片信息,然后在 onUploadSuccess 方法中将每个图片的信息添加到数组中,并在组件的模板中展示出来。

总结

@yantao0527/vux-uploader 扩展版是一个基于 Vux 的 vux-uploader 组件并增加了一些常用功能的 npm 包。通过本文的介绍,我们了解了如何使用该扩展版组件完成移动端图片上传的功能,并且掌握了一些常用的扩展功能。对于需要开发移动端图片上传功能的开发者来说,该组件可以大大简化开发难度,提高开发效率。

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


猜你喜欢

  • npm 包 jquery.panzoom.nopreventdefault 使用教程

    在前端开发中,交互是一个非常重要的环节。而 jQuery 是一个非常优秀的 JavaScript 库,可以帮助我们完成各种交互效果。其中,jQuery.panzoom.nopreventdefault...

    2 年前
  • npm 包 stibble-api-client-angular 使用教程

    在前端开发中,我们经常用到后端提供的 API 进行数据交互和展示。而 stibble-api-client-angular 是一个基于 Angular 的 npm 包,用于方便地调用后端接口。

    2 年前
  • npm 包 alfred-sound-output 使用教程

    在日常的前端开发中,我们难免会遇到需要使用声音播放的场景,比如音乐播放器、提示音等。针对这些需求,我们可以使用一些第三方的库和工具来简化我们的开发工作。其中,一款非常实用的工具就是 alfred-so...

    2 年前
  • npm 包 watch-me-load 使用教程

    随着现代前端应用的复杂性不断增加,为了优化用户体验,很多应用都采用了异步加载资源的方式。然而,在开发过程中,我们往往需要频繁地修改代码和资源文件,这使得我们需要不断地刷新页面才能看到最新的效果。

    2 年前
  • npm 包 fetch-remote-dir 使用教程

    随着前端技术的不断发展,我们需要频繁地获取远程服务器上的文件,从而进行后续的处理工作。而在这个过程中,使用 npm 包 fetch-remote-dir 就可以轻松实现对服务器上指定路径下的所有文件的...

    2 年前
  • npm 包 library-alan 使用教程

    概述 在前端开发中,使用一些常用的工具和库能够大大提高我们的开发效率。其中,npm 是一个值得注意的工具,它是全球最大的软件包管理系统,能够用来安装、分享和发布 Node.js 应用程序的代码。

    2 年前
  • npm 包 node-mapred 使用教程

    简介 node-mapred 是一个基于 Node.js 平台的 MapReduce 框架,用于处理分布式数据。它是通过 Node.js 的进程和线程来实现分布式计算的,可以快速地完成大规模数据处理,...

    2 年前
  • npm 包 node-watchtower 使用教程

    node-watchtower 是一个用于监视文件变化并执行自定义操作的 npm 包。在前端开发中,我们经常需要对文件进行频繁的修改和打包等操作,使用 node-watchtower 可以方便我们自动...

    2 年前
  • npm 包 normalize-data 使用教程

    在前端开发中,我们经常需要对数据进行格式化以便更好地展现和使用。而在数据不规范的情况下,我们可能需要手动处理数据,这不仅浪费时间,也容易出现错误。normalize-data 就是一款帮助前端开发者解...

    2 年前
  • npm 包 pown-wifi-current 使用教程

    介绍 pown-wifi-current 是一个用于获取当前 Wi-Fi 连接信息的 npm 包。它能够获取当前连接的 Wi-Fi 名称、信号质量、信道、MAC 地址等各种信息,方便我们快速地进行相关...

    2 年前
  • npm 包 plus.garden.webdriver 使用教程

    前言 在前端开发中,一个比较重要的组成部分就是自动化测试。自动化测试可以帮助开发者减少代码错误、提升代码质量以及提高开发效率。 其中,WebDriver 是一个非常重要的自动化测试工具,可以用来自动化...

    2 年前
  • npm 包 yandex-money-sdk-ext 使用教程

    本文将为大家介绍 npm 包 yandex-money-sdk-ext 的使用方法,该包主要用于与 Yandex 金融平台进行交互。本文分为以下几个部分:介绍 yandex-money-sdk-ext...

    2 年前
  • npm 包 json-recursive 使用教程

    json-recursive 是一个用于递归遍历和修改 JSON 对象的 npm 包。它可以在前端项目中方便地处理 JSON 数据,并提供了一些功能强大的辅助方法。

    2 年前
  • npm包pluc使用教程

    1. 什么是pluc pluc是一款基于webpack4开发的前端自动化构建工具,能够大幅度提升开发效率和运行速度。pluc通过实现智能化的打包机制,能够缩短页面的加载时间,从而优化用户体验。

    2 年前
  • npm 包 zero-translate 使用教程

    在前端开发中,我们经常需要处理多语言翻译,在这个过程中,一个好的翻译工具可以帮助我们增加开发效率和提高用户体验。npm 包 zero-translate 是其中一个很好的选择,它提供了一组简单易用的 ...

    2 年前
  • npm 包 recreate 使用教程

    在前端开发中,我们经常需要在代码中创建对象、数组等数据集合。然而,有些时候我们需要对这些数据集合进行修改,并且希望原本的数据集合不受影响。这时候,我们可以考虑使用 npm 包 recreate,它可以...

    2 年前
  • npm 包 react-github-nav 使用教程

    前言 在现代 Web 开发中,使用一些优秀的前端框架和库是必须的。而 npm 包管理器的出现,让我们更加方便地引用和管理这些库,提高了开发效率。 今天,我们要介绍的是一个名为 react-github...

    2 年前
  • npm包 "angular2-viewport" 使用教程

    简介 "angular2-viewport" 是一个 Angular2 响应式设计插件,它能让你在你的 Angular2 应用中生成不同的 HTML 片段来适应不同的 viewport。

    2 年前
  • npm 包 hexo-tag-snack 使用教程

    hexo-tag-snack是一款npm包,它是一款Hexo插件,可以将你的网站内容与snack.expo.io集成,方便你在博客中嵌入你的React Native应用程序。

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

    什么是 react-iban react-iban是一个npm包,它提供了一个React组件,用于显示和输入银行账号的IBAN号码。IBAN (International Bank Account N...

    2 年前

相关推荐

    暂无文章