前言

前段时间使用vue2.0构建了淘票票页面,并写了一篇相关文章vue2.0构建淘票票webapp,得到了很多童鞋的支持,因此这些天又使用react重构了下这个项目,目的无他,只为了学习和共同进步!

项目技术栈

前端技术栈:react + react-router + redux + ant-design-mobile

后台技术栈:nodejs + express

项目地址:https://github.com/canfoo/react-taopiaopiao

同样地,先晒一张效果图,想要看更多效果图请点击这里

项目架构

本项目采用react栈构建前端页面,采用express搭建后台服务,主要目录如下:

.
├── bin # 启动脚本
├── build # webpack相关配置
├── config # 项目配置文件
├── server # 后台服务
│ ├── bin # 程序启动和渲染
│ ├── database # 存放页面所需要的json数据
│ ├── public # 前端静态资源存放位置
│ ├── routes # 路由于请求接口管理
│ ├── views # 前端模板存放位置
│ ├── app.js # 后台服务入口
├── src # 程序源文件
│ ├── main.js # 程序启动和渲染
│ ├── components # 全局组件
│ ├── containers # 路由页面容器组件
│ ├── layouts # 主页结构
│ ├── static # 静态文件
│ ├── styles # 样式文件
│ ├── store # Redux管理
│ └── routes # 前端路由管理

主要特色功能概览

1. react路由组件是通过异步进行加载的,从而优化页面加载时间,详情请参考最好用的脚手架

2. 通过组件设计思想实现电影院详情中图片滑动变速、选中动画等功能,源码位置在/react-taopiaopiao/src/routes/CinemaDetail/components/Film.js

3. 采用redux管理每次加载数据自动判断是否需要显示loading,源码位置在/react-taopiaopiao/src/store/request.js

4. 使用阿里巴巴ant-design-mobile的ui库来实现城市分类选择等样式,详情请参考Mobile UI

...

react与vue的简单比较

既然都用了react和vue都构建了淘票票这个项目,那么就得来简单扯扯着两者简单的比较,其他童鞋如果不同的观点请留言指出。

相同点:

1. 两者都是轻量级,只专注状态到页面或者组件的映射。

2. vue2.0和react都可以使用虚拟DOM快速渲染、服务端渲染。

3. 响应式系统,当数据改变了,就会自动更新界面。

4. 都拥有优秀的社区来提供各式各样的解决方案。

不同点:

1. 代码风格:vue单文件组件是以模板+javascript+css呈现的,react推荐做法是 JSX + inline style,前者更容易被web开发人员所接受。

2. 响应式数据:vue提供反应式的数据,当数据改动时,界面就会自动更新,而react里面需要调用setState方法。

3. 学习成本:vue提供许多简单易用的api,相对来说,新手更容易快速掌握。

4. 优化方案:对于复杂应用,react的虚拟DOM需要通过shouldComponentUpdate来判断是否需要渲染页面,而vue数据是依赖追踪,默认就是优化状态的。

5. 生态社区:react相对于vue的生态社区要庞大多,内容也是比较丰富的。

...

这里只是做简单的对比,如果对于一个新人,对于这两者的学习,建议先撸vue,原因在上面对比已经体现出来了,

react构建淘票票webapp,及react与vue的简单比较。的更多相关文章

  1. React Native是一套使用 React 构建 Native app 的编程框架

    React Native是一套使用 React 构建 Native app 的编程框架 React Native at first sight what is React Native? 跟据官方的描 ...

  2. react+redux构建淘票票首页

    react+redux构建淘票票首页 描述 在之前的项目中都是单纯的用react,并没有结合redux.对于中小项目仅仅使用react是可以的:但当项目变得更加复杂,仅仅使用react是远远不够的,我 ...

  3. vue2.0构建淘票票webapp

    项目描述 之前一直用vue1.x写项目,最近为了过渡到vue2.0,特易用vue2.0栈仿写了淘票票页面,而且加入了express作为后台服务. 前端技术栈:vue2.0 + vue-router + ...

  4. React构建单页应用方法与实例

    React作为目前最流行的前端框架之一,其受欢迎程度不容小觑,从这门框架上我们可以学到许多其他前端框架所缺失的东西,也是其创新性所在的地方,比如虚拟DOM.JSX等.那么接下来我们就来学习一下这门框架 ...

  5. Flask (六) 项目(淘票票)

    FlaskDay06 Flask项目-淘票票 RESTful REST一种软件架构风格.设计风格.而不是标准,只是提供了一组设计原则和约束条件.它主要用户客户端和服务器交互类的软件. ​ 在前后端分离 ...

  6. React初步学习-利用React构建个人博客

    React初步学习-利用React构建个人博客 用React和Webpack写了一个很简单的个人博客,主要是想要熟悉一下react中各种基本基本属性及方法的使用.在构建过程中碰到不少问题,通过阅读官方 ...

  7. react构建前端项目方法汇总

    react简介: 一.使用react 创建一个PC端的项目 (a):使用 yemon 创建一个 webpack 的 react 的项目 控制台安装并且产看 yemon 的版本 yo -v (b): 全 ...

  8. python爬虫——爬取淘票票正在热映电影

    今天正好学习了一下python的爬虫,觉得收获蛮大的,所以写一篇博客帮助想学习爬虫的伙伴们. 这里我就以一个简单地爬取淘票票正在热映电影为例,介绍一下一个爬虫的完整流程. 首先,话不多说,上干货——源 ...

  9. 如何用 React 构建前端架构

    早期的前端是由后端开发的,最开始的时候仅仅做展示,点一下链接跳转到另外一个页面去,渲染表单,再用Ajax的方式请求网络和后端交互,数据返回来还需要把数据渲染到DOM上.写这样的代码的确是很简单.在We ...

随机推荐

  1. Servlet实现文件上传(多文件)(三)

    1.上传文件的页面fileUpload2.jsp <%@ page language="java" import="java.util.*" pageEn ...

  2. X-008 FriendlyARM tiny4412 uboot移植之copy u-boot到DDR内存

    <<<<<<<<<<<<<<<<<<<<<<<<< ...

  3. 【转】Linux Shell脚本面试25问

    Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件( ...

  4. Listener

    通过Listner获得当前的用户个数 package listener; import javax.servlet.ServletContext; import javax.servlet.Servl ...

  5. Java 之 HTML

    1.HTML a.定义:HTML指的是超文本标记语言 b.特点:HTML不是一种编程语言,而是一种标记语言 标记语言是一套标记标签 HTML使用标记标签来描述网页 c.HTML标签:①通常标签是成对出 ...

  6. 在IOS中使用DES算法对Sqlite数据库进行内容加密存储并读取解密

    在IOS中使用DES算法对Sqlite 数据库进行内容加密存储并读取解密 涉及知识点: 1.DES加密算法: 2.OC对Sqlite数据库的读写: 3.IOS APP文件存储的两种方式及读取方式. 以 ...

  7. redis 配置(1)

    redis配置密码 1.通过配置文件进行配置yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 #requirepass foobared 去掉行前的注释,并修 ...

  8. IM 融云 之 列表中显示聊天用户名称

    现在发现,聊天列表中,用户名称没有显示出来.

  9. PHP图片处理之图片背景、画布操作

    像验证码或根据动态数据生成统计图标,以及前面介绍的一些GD库操作等都属于动态绘制图像.而在web开发中,也会经常去处理服务器中已存在的图片.例如,根据一些需求对图片进行缩放.加水印.裁剪.翻转和旋转等 ...

  10. Delphi制作图像特殊显示效果

    Delphi制作实现图像的各种显示效果,比如百叶窗.渐变.淡入淡出.水平交错.雨滴效果等,用鼠标点击“打开图像”按钮,可以选择图像文件导入到窗体中:点击其它各个按钮,可以实现图像显示特效,例如:点击“ ...