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

本文介绍了如何在Vue项目中利用Element UI和HTML5的progress标签,结合axios的进度监听功能,实现图片上传过程中的进度条展示。通过控制isUploading和percentage变量,可以动态更新进度条状态,提供上传性能反馈,确保用户了解文件上传进度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家在写项目时肯定会遇到这样的一个需求,在上传文件或者头像过程中用进度条去代替图片上传的过程,这要做的好处是
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值