1. 简介

在Vue.js中实现照片上传与展示是一个常见且实用的功能。本文将为您提供一个实战教程,帮助您轻松掌握这一技能。我们将从基础的HTML和Vue组件开始,逐步深入到照片上传和展示的实现。

2. 准备工作

在开始之前,请确保您已经安装了Node.js和Vue CLI。如果您还没有安装,可以按照以下步骤进行安装:

npm install -g @vue/cli

创建一个新的Vue项目:

vue create photo-upload-project

进入项目目录:

cd photo-upload-project

安装所需的依赖:

npm install axios

3. 创建Vue组件

src/components目录下创建一个名为PhotoUpload.vue的新文件。以下是该组件的代码:

<template>
  <div>
    <h1>照片上传与展示</h1>
    <input type="file" @change="handleFileChange" />
    <div v-if="image">
      <img :src="image" alt="上传的照片" />
    </div>
  </div>
</template>

<script>
import axios from 'axios';

export default {
  data() {
    return {
      image: null,
    };
  },
  methods: {
    handleFileChange(event) {
      const file = event.target.files[0];
      if (file) {
        const reader = new FileReader();
        reader.onload = (e) => {
          this.image = e.target.result;
        };
        reader.readAsDataURL(file);
      }
    },
    uploadImage() {
      const formData = new FormData();
      formData.append('image', this.image);

      axios.post('http://example.com/upload', formData, {
        headers: {
          'Content-Type': 'multipart/form-data',
        },
      })
      .then(response => {
        console.log('照片上传成功', response.data);
      })
      .catch(error => {
        console.error('照片上传失败', error);
      });
    },
  },
};
</script>

<style scoped>
img {
  max-width: 100%;
  height: auto;
}
</style>

4. 使用组件

App.vue中引入并使用PhotoUpload组件:

<template>
  <div id="app">
    <PhotoUpload />
  </div>
</template>

<script>
import PhotoUpload from './components/PhotoUpload.vue';

export default {
  name: 'App',
  components: {
    PhotoUpload,
  },
};
</script>

5. 运行项目

在终端中运行以下命令来启动开发服务器:

npm run serve

6. 总结

本文为您提供了一个关于如何在Vue.js中实现照片上传与展示的实战教程。通过学习这个例子,您可以了解如何使用Vue的数据绑定、事件处理和文件API来实现这一功能。希望这个教程能帮助您更好地掌握Vue.js!