概述

使用create-react-app模板模仿12306app,实现了登陆和查票购票管理,结合express+mysql做后台,实现数据存储。 github地址:https://github.com/jinqiang12345/react-12306

详细

react-12306

使用create-react-app模板模仿12306app,实现了登陆和查票购票管理,结合express+mysql做后台,实现数据存储

前辈让我模仿一下12306把前后端都联系起来,我就建了这个项目,上次使的是antd提供的模板,这次选用了create-react-app模板,自己引入redux、react-router、material-UI搭建前端界面,用express+mysql做后端,用fetchAPI连接,用redux存数据,在不同页面使用,项目过程中有很多问题,不过通过google,segmentfault提问都得到了解决。

我也是一名将要毕业的学生,为了找工作想做一些项目练练手,这个项目功能不是很多,但是把一些框架的功能都使用上了,目前还可以正常运行,如果感兴趣的话可以下载来看看,如果运行不了的话,可以留言,我会尽力解决,当然我可能会答复不及时,请见谅。

一、实现功能

  • 用户登录

  • 用户注册

  • 记住密码

  • 自动登陆

  • 选择出发车站和目的车站

  • 查询指定车站车次车票

  • 购买车票

  • 退票

  • 余票更新

  • 历史订单记录

  • 退出登录

  • app页面

二、项目截图

 

未登陆时点击订单查询页面会自动跳转到登陆页面

 

  • 登陆验证部分截图

   

登陆成功

  • 注册失败

  • 查询车票和筛选车次

 

  • 查询中

  • 购票退票

 

  • 退出登陆

三、运行项目

  • 首先确保已安装mysql(因为mysql官网上下载mysql需要注册,我使用的是免费版的wampserver,里面含有mysql,同样也可以使用)

  • 导入文件夹下两个sql文件

  • 在mysql中创建用户名数据表user(id, password)

  • 在mysql中创建train火车票数据表train(id, start, end, number, title, time, type)

  • 在运行之前要在12306server/router文件夹下更改数据库配置(用户名,登陆密码,数据库名,表名等)

  • 上述工作完成后打开12306server文件夹运行

  • npm install

  • node app.js //这样你的服务器已经在localhost:5000打开了

  • 接下来打开12306文件夹运行

  • npm install

  • npm start //这样12306就在localhost:3000打开了

四、项目目录

12306server
  • -node_modules

  • -router //路由文件夹,存放处理不同请求的文件

  • --insertrecord.js //购买火车票后,将数据存入数据库

  • --login.js //用户登陆时调用

  • --record.js //查询用户所有火车票传回前端

  • --removerecord.js //用户删除火车票时处理

  • --signin.js //新用户注册时调用

  • --train.js //指定出发地和目的地的全部车次

  • -app.js //项目入口文件

  • -package.json

12306
  • -node_modules

  • -public

  • -src

  • --actions //redux action

  • ---index.js //存放redux action 例如登陆后保存用户名,退出登陆后删除记录

  • --components //页面复用组件

  • ---dashtable.jsx //对应page/order界面最上部功能栏

  • ---dialog.jsx //购买车票和删除车票弹出的确认框

  • ---history.js //路由跳转插件可以使用history.push('***')跳转页面

  • ---logindialog.jsx //登陆验证弹出框,例如输入为空或错误,注册失败

  • ---Navbar.jsx //顶部标题栏

  • ---refresh.jsx //获取后台传回数据时加载中标志

  • ---sitelist.jsx //车站列表,我只是静态添加了几个,可以在文件中修改

  • ---ticket.jsx //对应page/order页面车票查询组件

  • ---tooltip.jsx //购票成功或失败,删除车票成功或失败底部信息提示

  • --pages //app页面

  • ---bottomBar.jsx //底部导航

  • ---endsite.jsx //目的车站页面

  • ---login.jsx //登陆页面

  • ---my12306.jsx //12306页面,登陆信息

  • ---order.jsx //车票预定页面,可查询车票

  • ---pay.jsx //购票支付页面

  • ---record.jsx //购票记录页面,可删除车票

  • ---server.jsx //商旅服务页面

  • ---site.jsx //出发车站页面

  • ---train.jsx //车票页面,车次根据车型筛选有效

  • ---user.jsx //用户信息页面,退出登录有效

  • --reducers //redux reducer 对action 处理的函数

  • --index.css

  • --index.js //项目入口

  • --registerServiceWorker.js

  • --router.js //路由配置

  • -.gitignore

  • -package.json

  • -README.md

  • -yarn.lock

记得把这几点描述好咯:代码实现过程 + 项目文件结构截图 + 演示效果

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

使用create-react-app模板模仿12306app的更多相关文章

  1. 深入 Create React App 核心概念

    本文差点难产而死.因为总结的过程中,多次怀疑本文是对官方文档的直接翻译和简单诺列:同时官方文档很全面,全范围的介绍无疑加深了写作的心智负担.但在最终的梳理中,发现走出了一条与众不同的路,于是坚持分享出 ...

  2. 在 .NET Core 5 中集成 Create React app

    翻译自 Camilo Reyes 2021年2月22日的文章 <Integrate Create React app with .NET Core 5> [1] Camilo Reyes ...

  3. tap news:week5 0.0 create react app

    参考https://blog.csdn.net/qtfying/article/details/78665664 先创建文件夹 安装create react app 这个脚手架(facebook官方提 ...

  4. 使用create react app教程

    This project was bootstrapped with Create React App. Below you will find some information on how to ...

  5. 如何扩展 Create React App 的 Webpack 配置

    如何扩展 Create React App 的 Webpack 配置  原文地址https://zhaozhiming.github.io/blog/2018/01/08/create-react-a ...

  6. Create React App

    Facebook开源了React前端框架(MIT Licence),也同时提供了React脚手架 - create-react-app. create-react-app遵循约定优于配置(Coc)的原 ...

  7. Create React App 安装less 报错

    执行npm run eject 暴露模块 安装 npm i  less less-loader -D 1.打开 react app 的 webpack.config.js const sassRege ...

  8. [React] Use the Fragment Short Syntax in Create React App 2.0

    create-react-app version 2.0 added a lot of new features. One of the new features is upgrading to Ba ...

  9. [React] {svg, css module, sass} support in Create React App 2.0

    create-react-app version 2.0 added a lot of new features. One of the new features is added the svgr  ...

随机推荐

  1. bzoj 2428: [HAOI2006]均分数据 随机化

    2428: [HAOI2006]均分数据 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...

  2. jquery datatables使用

    引入相应css 和js <link href="http://cdn.datatables.net/1.10.5/css/jquery.dataTables.css" rel ...

  3. mybatis源码分析(2)-----SqlSession创建

    1. 在创建好sqlSessionFactory之后,接着就要配置sqlSession的创建. <bean id="simpleTempalte" class="o ...

  4. IDA 中文字符串

    http://www.pediy.com/kssd/pediy05/pediy50528.htm Ida Pro 的默认设置里对中文字串的支持比较差,对于首字节大于'E0'的都显示成?了.其实...  ...

  5. @ResponseBody,@RequestBody,@PathVariable

    最近需要做些接口服务,服务协议定为JSON,为了整合在Spring中,一开始确实费了很大的劲,经朋友提醒才发现,SpringMVC已经强悍到如此地步,佩服! 相关参考: Spring 注解学习手札(一 ...

  6. /etc/fstab格式的问题

    [root@localhost etc]# cat fstab /dev/VolGroup00/LogVol00 /                       ext3    defaults    ...

  7. 我的一些简单的shell脚本实例

    1.模拟linnux登录shell #/bin/bashecho -n "login:" read nameecho -n "password:"read pa ...

  8. springboot 选择启动某个配置文件

    选择启动某个配置文件 Spring Boot配置文件提供了隔离一部分应用程序配置的方法,并可使其仅在某指定环境可用.任何有@Component和@Configuration注解的Bean都用@prof ...

  9. input输入框回车事件响应

    1.常用方法 1.方法1$('#applyCertNum').bind('keypress',function(event){ if(event.keyCode == 13) { alert('你输入 ...

  10. [Linux] ubuntu server sudo出现sudo:must be setuid root 完美解决办法

    1.开机按shift或esc先进行recovery模式 2.选择root命令行模式 3.先执行 #mount -o remount,rw / 这个很重要,网上找的很多资料都不全没有这步造成无法恢复成功 ...