vue项目element-ui上传组件自定义方法无法获取进度

原因:element-ui中的up-load组件使用时,若用自定义上传http-request,会重新申明XMLHttpRequest,on-progress里的申明则被覆盖,无法使用该钩子,无法添加进度条

方案一:假进度条;写个假进度条优化用户体验,使用el-upload组件里on-change方法的status状态,配合定时器 ,以vue3为例 ,

uploadPercent.value = 0 //进度条初始为0
const interval = setInterval(() => { 
 	if (uploadPercent.value >= 99) {
 		clearInterval(interval)  //进度条满了清除定时器
 		return
 	}
 	uploadPercent.value += 1 //进度条进度
}, 200 ) //每200毫秒加载一次进度

方案二:真实进度条;

axios({	url:url,
		methods: 'post',
		data: data,
		onUploadProgress:onUploadProgress
})

axios参数里有个回调onUploadProgress,该回调可以实时监听上传进度,可以用于进度条利用该回调的参数ProgressEvent 获取上传量和总量,计算出进度

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值