本系列将介绍如果完成一个react + redux的应用,本篇将介绍如何构建一个react,redux项目,以及其他必备的基础知识
React Overview
facebook 发布了革命性的react
框架,作为对前端MV*
开发模式的反思,react
为前端提供了组件式的开发方式,基于Virtual DOM
的架构,相比于angular
的dirty watch
大大增加的性能,利用优化的diff
算法,可以接近O(n)的效率
Features:
JSX
Virtual DOM
Data Flow
对于典型的前端开发者,刚上手react
的时候是略微痛苦的,react
接管了所有的DOM操作,使得我们无法利用jQuery
来操作DOM,这对于我们来说是一种思维模式的改变
我们将在使用redux
的时候再介绍它
Environment Setup
安装react
,我们推荐使用nvm
来安装nodejs
我们需要一些准备工作,开发者应该对一下工具有一定的了解
并且对ES6
语法有一定了解,不了解的可以参考
Install
我们选择react-webpack-redux
这个生成器来生成代码
安装完成之后,主要目录结构如下,省略一些次要的
- my-new-project
- src:
index.html 首页
index.js 程序入口
- components: react组件
- reducers: reducer处理器
- actions: actions动作
- stores: stores存储容器
- containers: redux组件容器
- cfg: webpack配置
server.js
webpack.config.js
之后运行npm start
,就能看到一个开始页,我们的准备工作也就完成了
Appendix
在这里有必要提前介绍一些有关的JS基础,以后的篇幅中如果没有特殊情况,将不再做语法上的介绍
模块化
模块的导入,有以下几种导入方式:
模块的导出
面向对象
在react
里面组件都是通过继承Component
来实现
Arrow Functions and Assignment Destructuring 箭头函数和解构赋值
箭头函数=>
在CoffeeScript
中也有,用于将外部作用域的this
导入闭包
在react
中往往这样用:
常用函数
Object.prototype.assign
: 常用与合并多个对象
Function.prototype.bind
: 绑定函数内部this
以及指定参数
在react
中常用于指定回调函数的参数
其他
let
关键字:创建块作用域的变量
const
关键字:定义常量