引言
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>