el-upload文件上传(只能上传一个文件且再次上传替换上一个文件) vue3+vite+ts
发布人:shili8
发布时间:2025-03-04 05:32
阅读次数:0
**Vue3 + Vite + TS 实现的 El-Upload 文件上传组件**
### 组件介绍本文将介绍如何使用 Vue3、Vite 和 TypeScript 构建一个 El-Upload 文件上传组件。该组件支持单个文件上传,并且可以替换上一次上传的文件。
### 组件代码首先,我们需要创建一个名为 `ElUpload` 的 Vue 组件:
typescript// src/components/ElUpload.vue<template>
<div class="el-upload">
<input type="file" @change="handleFileChange" ref="fileInput" />
<span v-if="!file">点击上传文件</span>
<span v-else>已上传 {{ file.name }}</span>
</div>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue';
export default defineComponent({
name: 'ElUpload',
setup() {
const file = ref(null);
const handleFileChange = (event: Event) => {
const target = event.target as HTMLInputElement;
if (!target.files || !target.files.length) return;
const selectedFile = target.files[0];
file.value = selectedFile;
};
return { file, handleFileChange };
},
});
</script>
<style scoped>
.el-upload {
display: flex;
align-items: center;
padding:10px;
border:1px solid #ddd;
border-radius:4px;
cursor: pointer;
}
</style>
### 组件使用接下来,我们需要在 App.vue 中使用这个组件:
typescript// src/App.vue<template>
<div class="app">
<ElUpload @change="handleFileChange" />
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import ElUpload from './components/ElUpload.vue';
export default defineComponent({
name: 'App',
components: { ElUpload },
setup() {
const handleFileChange = (event: Event) => {
console.log('文件上传成功:', event);
};
return { handleFileChange };
},
});
</script>
<style scoped>
.app {
width:100%;
height:100vh;
display: flex;
justify-content: center;
align-items: center;
}
</style>
### 组件功能该组件支持以下功能:
* 单个文件上传* 替换上一次上传的文件### 总结本文介绍了如何使用 Vue3、Vite 和 TypeScript 构建一个 El-Upload 文件上传组件。该组件支持单个文件上传,并且可以替换上一次上传的文件。

