HTML5+CSS3+Vue3+axios+跨域技术实现一个移动端商品列表功能
时间: 2023-09-09 12:07:20 浏览: 68
html+css 移动端商城网页设计实现
5星 · 资源好评率100%
好的,我可以给你提供一个基本的思路和代码示例。首先,我们需要搭建一个后端 API 接口,用于提供商品数据。然后,我们使用 Vue3 作为前端框架,使用 axios 库来进行数据请求,同时使用 HTML5 和 CSS3 来实现页面布局和样式。
以下是一个简单的示例:
### 后端 API 接口
我们可以使用 Node.js 和 Express 框架来搭建一个简单的 API 接口,用于提供商品数据。假设我们有一个 `products` 路由,可以通过 GET 请求获取商品列表数据。
```javascript
const express = require('express');
const app = express();
app.get('/products', (req, res) => {
const products = [
{ id: 1, name: '商品1', price: 100 },
{ id: 2, name: '商品2', price: 200 },
{ id: 3, name: '商品3', price: 300 },
];
res.json(products);
});
app.listen(3000, () => {
console.log('Server is running at http://localhost:3000');
});
```
### 前端页面
我们使用 Vue3 来搭建一个简单的页面,用于展示商品列表。在页面中,我们通过 axios 库来请求后端 API 接口,获取商品数据并展示在页面中。
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>商品列表</title>
<link rel="stylesheet" href="https://unpkg.com/tailwindcss/dist/tailwind.min.css">
</head>
<body>
<div id="app" class="container mx-auto">
<h1 class="text-3xl font-bold mb-4">商品列表</h1>
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
<div v-for="product in products" :key="product.id" class="bg-white shadow-md rounded-lg overflow-hidden">
<img :src="product.image" class="w-full h-48 object-cover">
<div class="p-4">
<h2 class="font-bold text-xl mb-2">{{ product.name }}</h2>
<p class="text-gray-700 text-base">{{ product.price }} 元</p>
</div>
</div>
</div>
</div>
<script src="https://unpkg.com/vue@next"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
const app = Vue.createApp({
data() {
return {
products: []
}
},
created() {
axios.get('http://localhost:3000/products')
.then(response => {
this.products = response.data;
})
.catch(error => {
console.log(error);
});
}
});
app.mount('#app');
</script>
</body>
</html>
```
在上面的示例代码中,我们使用了 Tailwind CSS 来实现页面布局和样式。通过 `v-for` 指令循环遍历商品列表,并将商品数据展示在页面中。
### 跨域处理
由于前端页面和后端 API 接口可能存在跨域问题,我们需要进行跨域处理。在 Express 中,我们可以使用 `cors` 中间件来实现跨域处理。
```javascript
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());
// ...
```
在 Vue3 中,我们可以使用 `vue-cli` 来创建项目,并在 `vue.config.js` 文件中进行跨域配置。
```javascript
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://localhost:3000',
changeOrigin: true,
pathRewrite: { '^/api': '' }
}
}
}
};
```
在上面的配置中,我们将 `/api` 路径映射到后端 API 接口的根路径,并将请求转发到后端 API 接口。同时,我们设置 `changeOrigin` 为 `true`,以支持跨域请求。
这样,我们就可以通过 `http://localhost:8080/api/products` 来访问后端 API 接口,并获取商品数据了。
阅读全文