React,React Native中的es5和es6写法对照
es6用在React中的写法总结:
在es6还没有完全支持到浏览器的阶段里,已经有很多技术人员开始用es6的写法来超前编程了,因为有转义es6语法的工具帮助下,大家才可大量使用。解析看看es6写法用在react中的代码呈现。
1.引用外部文件
//es5写法 var React = require('react'); var {Image,Text}= React;
//es6 import React,{Image,Text} from 'react';
2.创建React模块
//es5 var MyComponent = React.createClass({ ... }); module.exports = MyComponent;
//es6:使用export default来实现 export default class MyComponent extends React.Component{ ... }
3.创建React组件
//es5 var Input = React.createClass({ render:function(){ return ( <Input source={this.props.source} /> ); } });
//在es6里,通过定义一个继承自React.Component的class来定义一个组件类 class Input extends React.Component{ render(){ return( <Input source={this.props.source} /> ); } }
4.创建React函数方式
//es5 var Input = React.createClass({ getInitialState:function(){ ... }, render:function(){ renturn( <Input /> ); } });
//es6 class Input extends React.Component{ getInitialState(){ ... } render(){ <Input /> } }
5.初始化state
//es5 var Star = React.createClass({ getInitialState:function(){ return{ sayHello:this.props.hello } } });
//es6 有2种写法 第一种: class Star extends React.Component{ state = { sayHello:this.props.hello } } 第二种: class Star extends React.Component{ constructor(props){ super(props); this.state = { sayHello:this.props.hello } } }
5.定义组件属性类型和默认属性
//es5 var Star = React.createClass({ getDefaultProps:function(){ return{ minVal:0, maxVal:true } }, propTypes:{ minVal:React.PropTypes.number.isRequired, maxVal:React.PropTypes.bool.isRequired }, render:function(){ return ( <View /> ) } });
//es6里可以统一使用static实现.在static成员之间用;号隔开 class Star extends React.Component{ static defaultProps = { minVal:0, maxVal:true };//注意;号 static propType = { minVal:React.PropTypes.number.isReqired, maxVal:React.PropTypes.bool.isRequired }; render(){ return ( <View /> ) } } //另一种写法 class Star extends React.Component{ render(){ return( <View /> ) } } Star.defaultProps = { minVal:0, maxVal:true } Star.propTypes = { minVal:React.PropTypes.number.isRequired, maxVal:React.PropTypes.bool.isRequired }