vue3+ts element-plus 头像上传
时间: 2024-01-24 17:03:52 浏览: 171
element plus上传头像组件的运用
以下是使用Vue3和TypeScript结合Element-Plus实现头像上传的示例代码:
```vue
<template>
<div>
<el-upload
class="avatar-uploader"
action="/upload"
:show-file-list="false"
:before-upload="beforeUpload"
:on-success="handleSuccess"
:on-error="handleError"
>
<img v-if="imageUrl" :src="imageUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue';
export default defineComponent({
name: 'AvatarUploader',
setup() {
const imageUrl = ref('');
const beforeUpload = (file: File) => {
// 验证文件类型和大小等
return true;
};
const handleSuccess = (response: any) => {
// 上传成功后的处理逻辑
imageUrl.value = response.data.url;
};
const handleError = (error: any) => {
// 上传失败后的处理逻辑
console.log(error);
};
return {
imageUrl,
beforeUpload,
handleSuccess,
handleError,
};
},
});
</script>
<style scoped>
.avatar-uploader {
display: inline-block;
width: 100px;
height: 100px;
border-radius: 50%;
overflow: hidden;
background: #f8f8f8;
position: relative;
cursor: pointer;
}
.avatar {
width: 100%;
height: 100%;
object-fit: cover;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
</style>
```
这是一个名为`AvatarUploader`的Vue组件,使用了`el-upload`组件来实现头像上传功能。在`beforeUpload`方法中,你可以添加文件类型和大小的验证逻辑。在`handleSuccess`方法中,你可以处理上传成功后的逻辑,例如更新头像的URL。在`handleError`方法中,你可以处理上传失败后的逻辑。
你可以将以上代码保存为一个.vue文件,然后在你的Vue项目中使用该组件来实现头像上传功能。
阅读全文