提供一个vue前端完整页面示例,样式使用elementui,写一个可以上传图片并马上回显的轮播图
时间: 2024-01-14 19:04:35 浏览: 90
VUE开发一个图片轮播的组件示例代码
以下是一个使用 Vue 和 Element UI 的前端页面示例,包含上传图片并马上回显的轮播图功能:
```vue
<template>
<div class="carousel-demo">
<el-upload
class="upload-demo"
action="//jsonplaceholder.typicode.com/posts/"
:on-success="handleSuccess"
:before-upload="beforeUpload"
:file-list="fileList"
:auto-upload="false"
list-type="picture-card"
:multiple="true"
>
<i class="el-icon-plus"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
</el-upload>
<el-carousel :interval="4000" arrow="never" indicator-position="outside">
<el-carousel-item v-for="(item, index) in imageList" :key="index">
<img :src="item.url" alt>
</el-carousel-item>
</el-carousel>
</div>
</template>
<script>
export default {
data() {
return {
fileList: [],
imageList: []
};
},
methods: {
beforeUpload(file) {
this.fileList.push(file);
const reader = new FileReader();
reader.onload = (e) => {
this.imageList.push({
url: e.target.result
});
};
reader.readAsDataURL(file);
return false;
},
handleSuccess(response, file, fileList) {
console.log(response, file, fileList);
}
}
};
</script>
<style>
.carousel-demo {
padding: 20px;
}
.upload-demo .el-upload__tip {
margin-top: 10px;
}
</style>
```
在这个示例中,我们使用了 Element UI 的 Upload 和 Carousel 组件实现了图片上传和轮播图功能。首先,我们在页面上渲染了一个 Upload 组件,用户可以通过点击或拖拽上传图片。在 beforeUpload 方法中,我们将上传的图片文件添加到 fileList 数组中,并使用 FileReader 将图片转换为 base64 格式,并将其添加到 imageList 数组中。最后,我们返回 false 来阻止 Upload 组件自动上传文件。
在 Carousel 组件中,我们使用 v-for 循环遍历 imageList 数组来渲染每个图片元素。在每个 CarouselItem 中,我们使用 img 标签来显示图片,它的 src 属性绑定到当前循环的图片的 url 属性上。
这个示例演示了如何使用 Vue 和 Element UI 实现上传图片并马上回显的轮播图功能。你可以根据你的需求来修改代码,并添加其它功能和样式。
阅读全文