vue3超购项目的图片上传介绍
时间: 2023-10-14 21:07:22 浏览: 84
Vue3超购项目的图片上传可以使用第三方库或自己编写代码实现。以下是其中一种实现方式:
1. 安装并导入 VueCLI 和 Element UI
```
npm install -g @vue/cli
npm install element-ui --save
```
2. 创建一个上传组件
```html
<template>
<el-upload
class="upload-demo"
action="/upload"
:on-success="handleSuccess"
:before-upload="beforeUpload">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
</template>
<script>
export default {
methods: {
beforeUpload(file) {
const isJPG = file.type === 'image/jpeg' || file.type === 'image/png'
const isLt500K = file.size / 1024 < 500
if (!isJPG) {
this.$message.error('上传图片只能是 JPG/PNG 格式!')
}
if (!isLt500K) {
this.$message.error('上传图片大小不能超过 500KB!')
}
return isJPG && isLt500K
},
handleSuccess(response) {
this.$message.success('上传成功')
this.$emit('upload-success', response.url)
}
}
}
</script>
```
3. 在父组件中使用该上传组件
```html
<template>
<div>
<upload-component @upload-success="handleUploadSuccess"></upload-component>
<img :src="imageUrl">
</div>
</template>
<script>
import UploadComponent from './UploadComponent.vue'
export default {
components: {
UploadComponent
},
data() {
return {
imageUrl: ''
}
},
methods: {
handleUploadSuccess(url) {
this.imageUrl = url
}
}
}
</script>
```
这里使用 Element UI 的上传组件,通过设置 `before-upload` 方法可以限制上传文件的类型和大小,并在上传成功后触发 `handleSuccess` 方法将图片地址传回父组件。在父组件中,我们使用 `img` 标签展示上传的图片。
阅读全文