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

阅读时长 6 分钟读完

前言

上传图片是网站或应用开发中常见的功能,而基于 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

纠错
反馈

纠错反馈