### ES5和ES6在React/React Native 中的写法
* * * * *
模块的引用
| ES5 | ES6 |
| --- | --- |
|  |  |
| 使用CommonJS标准,引入React包基本通过require进行 | 使用import写法 |
导出单个类
| ES5 | ES6 |
| --- | --- |
|  |  |
| 一般通过module.exports来导出 | 通常用export default |
定义组件
| ES5 | ES6 |
| --- | --- |
|  |  |
| 通过React.createClass来定义一个组件类 | 过定义一个继承自React.Component的class来定义一个组件类 |
给组件定义方法
| ES5 | ES6 |
| --- | --- |
|  |  |
| 名字: function()的写法,需要写逗号 | 名字()的写法 |
定义组件的属性类型和默认属性
| ES5 | ES6 |
| --- | --- |
|  |  |
| 属性类型和默认属性分别通过propTypes成员和getDefaultProps方法来实现 | 统一使用static成员来实现 |
初始化state
| ES5 | ES6 |
| --- | --- |
|  |  |
| | 在构造函数中初始化更易理解 |
把方法作为回调提供
| ES5 | ES6 |
| --- | --- |
|  |  |
| React.createClass会把所有的方法都bind一遍,这样可以提交到任意的地方作为回调函数,而this不会变化。 | 需要通过bind来绑定this引用,或者使用箭头函数(它会绑定当前scope的this引用)来调用 |
参考资料:[React/React Native 的ES5 ES6写法对照表](http://bbs.reactnative.cn/topic/15/react-react-native-%E7%9A%84es5-es6%E5%86%99%E6%B3%95%E5%AF%B9%E7%85%A7%E8%A1%A8)
