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

vue-pc上传优化-uni-app上传优化

vue-pc上传优化

  • 当我们使用自己搭建的文档服务器上传图片时候,在本地没问题,上线上传会比较慢

  • 这时候我们最简单的方法就是写一个加载组件,上传之前打开组件,掉完接口关闭组件

  • 或者不想写直接使用element的loading写一个遮罩层加载,调接口时控制开启关闭

1.自己写组件方法

2.使用element-loading加载组件遮罩层

     
 //开启遮罩层let loadingInstance = Loading.service({lock: true, //lock的修改符--默认是falsetext: "正在上传背景图,请耐心等待", //显示在加载图标下方的加载文案spinner: "el-icon-loading", //自定义加载图标类名background: "rgba(0, 0, 0, 0.7)", //遮罩层颜色target: document.querySelector("#futureTransferDialog"), //loadin覆盖的dom元素节点});// 上传文档服务器-调用接口// 接口调用成功-赋值信息//关闭遮罩层loadingInstance.close();

uni-app-上传优化

  • 当我们使用uni-app的uni-file-picker-上传时,可能配合的是自己搭建的文档服务器(免费的)

  • 但我们没有使用uni-app的上传空间时候,上传失败钩子是不会执行,导致我们不好操作。

  • 特别是发布之后,可能还没有上传成功(需要时间响应),小程序就把临时路径加载到uni-file-picker-组件显示了。这时候api还没有调用成功(苹果真机比较明显)

  • 这是我们只能加一个遮罩层,告诉用户我在上传,不要操作,避免误操作造成数据确实

async select(e) {// 获取到文件对象时,开启加载遮罩层// 开启遮罩层-开始上传-响应需要时间-提示用户等待-防止用户误操作this.$modal.loading("上传图片中...")console.log('选择文件:', e)const tempFilePaths = e.tempFilePaths[0];
​uni.uploadFile({url: 'https://api.thgykj.com/admin-api/upload/file',filePath: tempFilePaths,name: 'multipartFile',header: {"Authorization":getAccessToken(),},success: (res) => {console.log('上传成功', res.data);console.log('上传数据转换', JSON.parse(res.data));// 取到文档服务器的值let uploaddata = JSON.parse(res.data)if (uploaddata) {// 有值-上传成功-加载需要时间-赋值完数据-提示用户-关闭遮罩层toast('巡检图片添加成功')this.$modal.closeLoading()} else {//没值-上传失败超时-提示用户-关闭遮罩层this.$modal.closeLoading()toast('巡检图片添加失败,请重新添加')}},fail: error => {console.log(error);}})},

总结:

经过这一趟流程下来相信你也对 vue-pc上传优化-uni-app上传优化 有了初步的深刻印象,但在实际开发中我 们遇到的情况肯定是不一样的,所以我们要理解它的原理,万变不离其宗。加油,打工人!

什么不足的地方请大家指出谢谢 -- 風过无痕

http://www.lryc.cn/news/135604.html

相关文章:

  • 【计算机视觉|生成对抗】StackGAN:使用堆叠生成对抗网络进行文本到照片逼真图像合成
  • 跟随角色镜头时,解决地图黑线/白线缝隙的三种方案
  • redis7高级篇2 redis的BigKey的处理
  • 启英泰伦通话降噪方案,采用深度学习降噪算法,让通话更清晰
  • 将SonarLint集成到Git
  • 【Jenkins】rpm方式安装Jenkins(2.401,jdk版本17)
  • vue3跳转统一页面,path一样,传递的参数不一样时页面不刷新
  • 升级还是不升级?iPhone 15和iPhone 14 Plus性能比较
  • 关于LED电子显示屏幕的显示功能
  • 计算机视觉--利用HSV和YIQ颜色空间处理图像噪声
  • Android Studio中引入MagicIndicator
  • webrtc学习(六)重要信令级时序图
  • Leetcode刷题笔记--Hot21-30
  • 【MyBatis八股】MyBatis面试题
  • Apache Hudi初探(二)(与flink的结合)--flink写hudi的操作(JobManager端的提交操作)
  • Office ---- excel ---- 怎么批量设置行高
  • Wlan——STA上线流程与802.11MAC帧讲解
  • HTTP的并发连接限制和连接线程池
  • 【从零学习python 】45.Python中的类方法和静态方法
  • 基于 VisualFoxPro 环境开发应用程序的过程
  • SpringBoot整合Quartz,实现数据库方式执行定时任务
  • java中多个list怎么用List表示?
  • postgresql 数据排序
  • 虚拟机 net、桥接、主机三种网络模式寻根问底
  • python代码——批量将PPT转换成长图
  • C++信息学奥赛2046:【例5.15】替换字母
  • 每天一道leetcode:1306. 跳跃游戏 III(图论中等广度优先遍历)
  • 76参考链接
  • 浅析Linux SCSI子系统:调试方法
  • 【Unity3D】水面特效