vue实现图片上传或加载时显示进度条

大家在写项目时肯定会遇到这样的一个需求,在上传文件或者头像过程中用进度条去代替图片上传的过程,这要做的好处是
1、上传大的资源时让用户知道资源正在被上传,而不是点击上传以为卡住了没反应而多次点击上传,导致一下子上传多个文件。
2、对文件上传做一个性能缓冲的效果,让用户能够看到文件的上传进度从而愿意去等待文件的上传。

今天我就用element ui 跟 vue去实现一个图片上传时显示进度条的效果。
在HTML5中新增了一个标签progress表示进度,而axios中对progress进行了封装。

//封装了一个上传图片的接口方法
export const uploadCourseImage = (data, onUploadProgress) => {
  return request({
    method: 'POST',
    url: '',
    data,
    onUploadProgress
  })
}

//在vue.js中调用,通过onUploadProgress方法事件对象中的total与loaed可以获取数据上传的完整大小和正在上传的大小
const { data } = await uploadCourseImage(fd, e => {
          this.percentage = Math.floor(e.loaded / e.total * 100)
})

然后我们使用element ui构建页面结构,通过绑定isUploading与percentage来控制进度条是否显示以及进度条中的数值

<template>
  <div class="course-image">
    <el-progress //进度条组件
      v-if="isUploading"//是否显示进度条
      typ
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值