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

【区分vue2和vue3下的element UI ¶Upload 上传组件,分别详细介绍属性,事件,方法如何使用,并举例】

在 Vue 2 中,我们通常使用 Element UI 的 el-upload 组件来实现文件上传功能。然而,在 Vue 3 中,由于 Element UI 没有官方支持 Vue 3 的版本,我们通常会使用 Element Plus(Element UI 的 Vue 3 版本)的 el-upload 组件,尽管两者的使用方式大致相同,但也有一些差异。

Vue 2 + Element UI

el-upload 组件

属性 (Attributes):

  • action: 必需的 URL,上传的地址
  • headers: 设置上传的请求头部
  • on-success: 文件上传成功时的钩子
  • on-error: 文件上传失败时的钩子
  • before-upload: 上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传
  • auto-upload: 是否在选取文件后立即进行上传
  • multiple: 是否支持多文件上传
  • limit: 允许上传文件的个数限制
  • on-exceed: 文件超出个数限制时的钩子
  • file-list: 已经上传的文件列表,默认根据 v-model 生成
  • drag: 是否启用拖拽上传
  • ...: 其他通用属性

事件 (Events):

  • change: 文件状态改变时的钩子,更新文件列表
  • success: 文件上传成功时的回调
  • error: 文件上传失败时的回调
  • progress: 文件上传时的进度事件
  • remove: 文件列表移除文件时的回调
  • ...: 其他通用事件

方法 (Methods):

  • Element UI 的 el-upload 组件通常不提供直接调用的方法,而是通过属性和事件来控制其行为。

示例:

<template><el-uploadclass="upload-demo"action="https://example.com/upload":on-success="handleSuccess":before-upload="beforeUpload":auto-upload="false":multiple="true":limit="3":on-exceed="handleExceed":file-list="fileList":drag="true"><el-button slot="trigger" size="small" type="primary">选取文件</el-button><el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button><div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div></el-upload>
</template><script>
export default {data() {return {fileList: [],};},methods: {handleSuccess(response, file, fileList) {this.fileList = fileList;// 处理上传成功的逻辑},beforeUpload(file) {const isJPG = file.type === 'image/jpeg' || file.type === 'image/png';const isLt2M = file.size / 1024 / 1024 < 0.5;if (!isJPG) {this.$message.error('上传头像图片只能是 JPG/PNG 格式!');return false;}if (!isLt2M) {this.$message.error('上传头像图片大小不能超过 0.5MB!');return false;}return true;},handleExceed(files, fileList) {this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);},submitUpload() {this.$refs.upload.submit(); // 使用 $refs 调用组件的 submit 方法},},
};
</script>

Vue 3 + Element Plus

在 Vue 3 中使用 Element Plus 的 el-upload 组件与 Vue 2 + Element UI 非常相似,但请注意 API 可能会有一些变化或新增功能。你应该查阅 Element Plus 的官方文档以获取最新的信息。

示例:

在 Vue 3 中使用 Element Plus 的 el-upload 组件的示例代码与 Vue 2 类似,但你需要使用 Composition API 来定义响应式的数据和方法。

<template><!-- 模板部分与 Vue 2 示例类似 -->
</template><

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Apache Doris 基础 -- 数据表设计(使用AUTO_INCREMENT)
  • 水库大坝安全监测系统打通监控数据“最后一公里”
  • 黄仁勋:打破摩尔定律,机器人时代来了
  • Flink 入门案例介绍
  • Autoxjs 实践-Spring Boot 集成 WebSocket
  • NMF算法
  • el-input中change事件造成的坑
  • AI大数据处理与分析实战--体育问卷分析
  • 评价GPT-4的方案
  • blender从视频中动作捕捉,绑定到人物模型
  • 【调度算法】Boltzmann选择
  • Spring Boot 实现动态数据源配置
  • 嵌入式中C语言经典的面试题分享
  • 《TCP/IP网络编程》(第十三章)多种I/O函数(2)
  • GPT-4欺骗人类的惊人成功率达99.16%!
  • 自己简单写的 事件订阅机制
  • 《剑指offer》分解让复杂问题更简单
  • 2017-09-12 前端日报
  • CAP理论的例子讲解
  • css选择器
  • HTTP--网络协议分层,http历史(二)
  • IDEA 插件开发入门教程
  • Java 网络编程(2):UDP 的使用
  • JDK 6和JDK 7中的substring()方法
  • JS基础之数据类型、对象、原型、原型链、继承
  • LeetCode29.两数相除 JavaScript
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • PHP那些事儿
  • Redis 中的布隆过滤器
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • vue的全局变量和全局拦截请求器
  • 阿里云Kubernetes容器服务上体验Knative
  • 前端
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 项目管理碎碎念系列之一:干系人管理
  • 应用生命周期终极 DevOps 工具包
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • #include
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (PySpark)RDD实验实战——取一个数组的中间值
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (转)http-server应用
  • (转)IOS中获取各种文件的目录路径的方法
  • .bat批处理(六):替换字符串中匹配的子串
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .gitignore文件---让git自动忽略指定文件
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态