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 文件上传组件。该组件支持单个文件上传,并且可以替换上一次上传的文件。