Vant Uploader 文件上传
Vant Uploader 组建主要实现手机端。
import Vue from 'vue'; import { Uploader } from 'vant'; Vue.use(Uploader);
完毕后会触发after-read回调,到对应的file对象
<van-uploader :after-read="afterRead" />
export default { methods: { afterRead(file) { // 此时可以自行将至服务器 console.log(file); } } };
通过v-model可以绑定已经的列表,并展示列表的预览图
<van-uploader v-model="fileList" multiple />
export default { data() { return { fileList: [ { url: 'https://img.yzcdn.cn/vant/leaf.jpg' }, // Uploader 根据后缀来判断是否为 // 如果 URL 中不包含类型信息,可以 isImage 来声明 { url: 'https://cloud-image', isImage: true } ] } } };
通过max-count可以限制的,达到限制后,会隐藏区域
<van-uploader v-model="fileList" multiple :max-count="2" />
export default { data() { return { fileList: [] } } };
通过插槽可以区域的样式
<van-uploader> <van-button icon="photo" type="primary"></van-button> </van-uploader>
通过传入beforeRead可以在前进行校验,返回true表示校验通过,返回false表示校验失败。返回Promise进行异步校验
<van-uploader :before-read="beforeRead" />
import { Toast } from 'vant'; export default { methods: { // 返回布尔值 beforeRead(file) { if (file.type !== 'image/jpeg') { Toast('请 jpg 格式'); return false; } return true; }, // 返回 Promise asyncBeforeRead(file) { return new Promise((resolve, reject) => { if (file.type !== 'image/jpeg') { Toast('请 jpg 格式'); reject(); } else { resolve(); } }); } } }
API
before-read、after-read、before-delete 执行时会传递以下回调参数:
result-type字段表示读取结果的类型,大时,建议使用 file 类型,避免卡顿。
通过 ref 可以到 Uploader 实例并实例,详见