引言

1. 项目准备

  • 环境搭建:确保已安装Node.js和Vue CLI,以便创建Vue项目。
  • 后端框架:选择合适的服务器端语言和框架,如Express.js、Koa.js等,用于处理图片数据的请求。
  • 数据库:建立数据库并设计相应的数据表,用于存储图片信息。

2. 数据库设计

设计数据库时,需要考虑以下字段:

  • id:图片的唯一标识符。
  • url:图片的访问地址。
  • title:图片的标题(可选)。
  • description:图片的描述(可选)。
CREATE TABLE images (
  id INT AUTO_INCREMENT PRIMARY KEY,
  url VARCHAR(255) NOT NULL,
  title VARCHAR(255),
  description TEXT
);

3. 后端实现

3.1 初始化项目

使用Vue CLI创建一个Vue项目,并安装Express.js及相关依赖:

vue create vue-image-list
cd vue-image-list
npm install express

3.2 创建后端文件

在项目根目录下创建server.js文件,并编写以下代码:

const express = require('express');
const app = express();
const port = 3000;

// 假设使用的是MySQL数据库
const mysql = require('mysql');

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'image_database'
});

connection.connect();

app.get('/images', (req, res) => {
  connection.query('SELECT * FROM images', (err, results) => {
    if (err) {
      console.error(err);
      return res.status(500).send('Server error');
    }
    res.json(results);
  });
});

app.listen(port, () => {
  console.log(`Server listening at http://localhost:${port}`);
});

3.3 启动服务器

运行以下命令启动服务器:

node server.js

4. 前端实现

<template>
  <div>
    <h1>图片列表</h1>
    <ul>
      <li v-for="image in images" :key="image.id">
        <img :src="image.url" :alt="image.title" />
        <p>{{ image.title }}</p>
      </li>
    </ul>
  </div>
</template>

<script>
import axios from 'axios';

export default {
  data() {
    return {
      images: []
    };
  },
  created() {
    this.fetchImages();
  },
  methods: {
    fetchImages() {
      axios.get('/images')
        .then(response => {
          this.images = response.data;
        })
        .catch(error => {
          console.error(error);
        });
    }
  }
};
</script>

5. 总结