概述

使用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. .apk文件的MIME类型

    IIS7中下载apk文件会报404错误. 找到:IIS目录,MIME类型 添加.apk文件的MIME类型. 文件扩展名:.apk MIME类型:application/vnd.android.pack ...

  2. js利用正则替换图片路径问题

    /* * 需求:给图片的src地址前面增加为assets * * 1. 将需要匹配的内容原封不动的写入正则表达式 * 2. 将改变的内容替换为.*? * 3. 将.*?添加(),目的是为了能够将src ...

  3. 解决Visual Studio 2015创建工程时的“DNX SDK version 'dnx-clr-win-x86.1.0.0-beta5' failed to install.”错误

    前段时间发布了Visual Studio2015,在后,发现创建Asp.Net工程和时,出现了"DNX SDK version 'dnx-clr-win-x86.1.0.0-beta5' f ...

  4. Use a TL431 shunt regulator to limit high ac input voltage

    Most isolated, offline SMPSs (switched-mode power supplies), including flyback, forward, and resonan ...

  5. Java:使用 Java 开发的一个异常处理框架

    背景 这篇文章介绍的异常处理思路不错,本文试图给出一种具体实现,当然可能和作者的思路有所不同. 框架地址:https://github.com/happyframework/HappyFramewor ...

  6. JDK JRE区别

    JDK里面的工具也是用JAVA编写的,它们本身运行的时候也需要一套JRE,如C:/Program Files/Java/jdk1.5.x/目录下的JRE.而C:/Program Files/Java/ ...

  7. linux远程连接

    1.使用putty连接 putty下载地址 http://www.putty.org/ 2.通过VNC连接 vnc_viewer 下载地址 http://www.realvnc.com/downloa ...

  8. linuxShell检测内网中存活主机,windows下net view/nmblookup

    #!/bin/bash # Simple SHELL script for Linux and UNIX system monitoring with # ping command # code by ...

  9. python的with和__enter__ 、 __exit__

    __enter__(): 在使用with语句时调用,会话管理器在代码块开始前调用,返回值与as后的参数绑定 __exit__():   会话管理器在代码块执行完成好后调用,在with语句完成时,对象销 ...

  10. DICOMDIR结构

    DICOMDIR文件结构: 格式: DICOMDIR文件遵照DICOM文件的存储格式,需要有128个无意义字节的前言(假如没有特殊要求,这些字节都为00H),紧接着是DICOM前缀(长度为4字节的“D ...