当前位置: 首页>前端>正文

element ui upload fileList回显 elementui的upload组件详解

el-upload 主要由 3 块组成:

element ui upload fileList回显 elementui的upload组件详解,element ui upload fileList回显 elementui的upload组件详解_python,第1张

第一部分:文件选择

文件选择部分是通过对 input 标签进行封装,可以看下源码:

<input 
  type="file" 
  ref="input" 
  name={name} 
  on-change={handleChange} 
  multiple={multiple} 
  accept={accept}>
</input>

对外提供了如下属性:

name:上传时的文件名,也是 input 标签的 name 属性值;

drag:是否可以支持拖拽选择文件;

accept:都可以选择哪些类型的文件,比如选择图片;

multipe:是否支持选择多个文件;

limit:最大允许选择的文件个数;

auto-upload:选择完文件是否自动开始上传;

disable:是否阻止用户选择文件;

on-exceed:当用户选择的文件个数,超出 limit 属性定义的值时触发的回调;

第二部分:上传服务

选择完文件即可进行上传处理,上传服务其实是通过对XMLHttpRequest 进行了封装,实现文件上传。  

在文件上传之前可以设置一些参数:

action:上传地址,也就是后端提供的上传服务地址;

headers:http 请求时用到的请求头;

data:http 请求需要用到的额外参数;

with-credentials:发送 cookie 凭证信息;

http-request:开发者自己提供上传服务;

在上传的过程中可以监听到上去期间的各个事件:

on-success:文件上传成功回调;

on-error:文件上传失败回调;

on-progress:文件上传时进度的回调;

before-upload:在文件上传时,可以告知 el-upload 是否允许本次的上传,可支持 Promise;

第三部分:上传列表

用户上传文件后,el-upload 提供了一个列表用来显示上传的结果。可通过下面这些属性对上传列表进行干预:

list-type:文件列表的样式,目前提供了 3 种样式,分别为:text、picture、picture-card;

show-file-list:是否显示上传列表;

on-preview:点击上传列表中某个文件时触发的回调;

on-remove:文件列表移除文件时的回调;

before-remove:是否阻止文件删除;

提供了 2 个 slot

slot 的作用是能够让使用者更大程度地定制 UI:

trigger:可定制触发选择文件时的UI ;

tip:可定制文件选择时的提示信息;

element ui upload fileList回显 elementui的upload组件详解,element ui upload fileList回显 elementui的upload组件详解_vue_02,第2张

提供了 3 个方法:

这些方法其实是给 vue 组件提供的方法,要想调用方法,必须获得组件的实例,可通过 ref 来获取组件的实例,关于 ref 的使用可以看我前面写的文章 refs - 访问DOM或组件实例。

clearFiles:清空已上传的文件列表(该方法不支持在 before-upload 中调用);

abort:取消上传请求;

submit:手段上传文件列表;

关于这 3 个方法的实现,可以看源码:

element ui upload fileList回显 elementui的upload组件详解,element ui upload fileList回显 elementui的upload组件详解_小程序_03,第3张

写在最后

el-upload 在处理上传列表方面并不灵活,比如上传过程中自动把上传失败的文件删除掉,大多数场景需要自定义上传列表,比如有个需求,文件上传前,UI 是这样的:

element ui upload fileList回显 elementui的upload组件详解,element ui upload fileList回显 elementui的upload组件详解_python_04,第4张

当有文件时,UI 是这样的:

element ui upload fileList回显 elementui的upload组件详解,element ui upload fileList回显 elementui的upload组件详解_vue_05,第5张

遇到这个需求不得不自定义上传列表。这时就体现出了基于 element-ui 打造私有 UI 库的好处,可以随便玩。


https://www.xamrdz.com/web/2qe1960242.html

相关文章: