如影随形 贴心陪护 - 我的移动端点单App
2023-11-29 17:09:39
点单,看似简单,却是在餐饮业不可或缺的重要环节。它连接着顾客与餐厅,是实现顾客点餐和餐厅出餐的关键。如今,随着移动互联网的快速发展,移动端点单App应运而生,为顾客带来了更加便捷、高效的点餐体验。
Vue3和React都是当今备受欢迎的前端框架,它们拥有强大的功能和丰富的生态系统,能够满足不同场景下的开发需求。在本文中,我们将介绍如何使用Vue3和ReactV6来构建一个移动端点单App,帮助您快速上手并掌握相关技术。
一、项目初始化
- Vue3版本
- 创建Vue3项目:```bash
vue create vue3-point-app
- 创建Vue3项目:```bash
- ReactV6版本
- 创建ReactV6项目:```bash
npx create-react-app react-point-app
- 创建ReactV6项目:```bash
二、安装依赖
- Vue3版本
- 安装FastMock:```bash
npm install fastmock --save
- 安装FastMock:```bash
- ReactV6版本
- 安装FastMock:```bash
npm install fastmock --save
- 安装FastMock:```bash
三、配置FastMock
- Vue3版本
- 在项目根目录创建
mock
文件夹,并在其中创建index.js
文件。 - 在
index.js
文件中配置FastMock:```javascript
const Mock = require('fastmock');
Mock.config.mockRandom = true;
- 在项目根目录创建
- ReactV6版本
- 在项目根目录创建
mock
文件夹,并在其中创建index.js
文件。 - 在
index.js
文件中配置FastMock:```javascript
const Mock = require('fastmock');
Mock.config.mockRandom = true;
- 在项目根目录创建
四、创建页面
-
Vue3版本
- 在
src
文件夹中创建pages
文件夹,并在其中创建Home.vue
文件。 - 在
Home.vue
文件中创建页面模板:```html
移动端点单App
- {{ item.name }} {{ item.price }} {{ item.quantity }}
总计:{{ totalPrice }}
- 在
-
ReactV6版本
- 在
src
文件夹中创建pages
文件夹,并在其中创建Home.jsx
文件。 - 在
Home.jsx
文件中创建页面模板:```jsx
import React, { useState, useEffect } from 'react';
import FastMock from 'fastmock';
const Home = () => {
const [menu, setMenu] = useState([]);
const [cart, setCart] = useState([]);
const [totalPrice, setTotalPrice] = useState(0);useEffect(() => {
FastMock.mock('/api/menu', {
'code': 200,
'data': [
{
'id': 1,
'name': '汉堡',
'price': 10
},
{
'id': 2,
'name': '薯条',
'price': 5
},
{
'id': 3,
'name': '可乐',
'price': 3
}
]
});
FastMock.get('/api/menu').then(res => {
setMenu(res.data);
});
}, []);const addToCart = (item) => {
const newCart = [...cart];
const index = newCart.findIndex(i => i.id === item.id);
if (index > -1) {
newCart[index].quantity++;
} else {
newCart.push({...item, quantity: 1});
}
setCart(newCart);
calculateTotalPrice();
};const calculateTotalPrice = () => {
let total = 0;
cart.forEach(item => {
total += item.price * item.quantity;
});
setTotalPrice(total);
};const checkout = () => {
alert('结账成功!');
};return (
移动端点单App
{item.name}
{item.price}
<button onClick={() => addToCart(item)}>+
{menu.map(item => (
))}
{item.name}
{item.price}
{item.quantity}
{cart.map(item => (
))}
总计:{totalPrice}
);
};export default Home;
- 在
五、模拟接口数据
- Vue3版本
- 在
mock
文件夹中的index.js
文件中,创建以下模拟接口:```javascript
Mock.mock('/api/menu', {
'code': 200,
'data': [
{
'id': 1,
'name': '汉堡',
'price': 10
},
{
'id': 2,
'name': '薯条',
'price': 5
},
{
'id': 3,
'name': '可乐',
'price': 3
}
]
});
- 在
- ReactV6版本
- 在
mock
文件夹中的index.js
文件中,创建以下模拟接口:```javascript
Mock.mock('/api/menu', {
'code': 200,
'data': [
{
'id': 1,
'name': '汉堡',
'price': 10
},
{
'id': 2,
'name': '薯条',
'price': 5
},
{
'id': 3,
'name': '可乐',
'price': 3
}
]
});
- 在
六、运行项目
- Vue3版本
- 在终端中运行以下命令:```bash
npm run serve
- 在终端中运行以下命令:```bash
- ReactV6版本
- 在终端中运行以下命令:```bash
npm start
- 在终端中运行以下命令:```bash
七、效果演示
访问localhost:8080
或localhost:3000
,即可看到移动端点单App的演示效果。您可以点击菜单项将其添加到购物车,也可以点击结账按钮完成结账。
八、结语
本文介绍了如何使用Vue3和ReactV6构建一个移动端点单App。通过使用FastMock模拟接口数据,我们能够快速实现点餐功能。希望本文能够帮助您快速入门并掌握相关技术。