这篇文章给大家介绍反应组件怎么利用ES6语法进行重构,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>一、创建组件强>
ES6类创建的组件语法更加简明,也更符合javascript。内部的方法不需要使用函数关键字。
<>强反应。createClass 强>
import React 得到& # 39;反应# 39;; const MyComponent =, React.createClass ({ ,呈现:函数(),{ ,return ( & lt;才能div>以前的方式创建的组件& lt;/div> ,); ,} }); MyComponent export default 添加;
<强> React.Component (ES6) 强>
import 反应,{,Component },得到& # 39;反应# 39;; class MyComponent  extends Component  { ,使(){ ,return ( & lt;才能div> ES6方式创建的组件& lt;/div> ,); ,} } MyComponent export default 添加;
<强>二,属性强>
道具proptype和getDefaultProps
。使用<代码> React.Component 代码>创建组件,需要通过在构造函数中调用<代码>超级()代码>将道具传递给<代码>反应。0.13组件> 代码。另外反应之后道具必须是不可变的。
。由于是用ES6类语法创建组件,其内部只允许定义方法,而不能定义属性,类的属性只能定义在类之外,所以proptype要写在组件外部。
。对于之前的getDefaultProps方法,由于道具不可变,所以现在被定义为一个属性,和proptype一样,要定义在类外部。
<>强反应。createClass 强>
import React 得到& # 39;反应# 39;; const MyComponent =, React.createClass ({ ,proptype: { ,nameProp: React.PropTypes.string }, ,getDefaultProps (), { ,return { nameProp才能:& # 39;& # 39; ,}; }, ,呈现:函数(),{ ,return ( & lt;才能div>以前的方式创建的组件& lt;/div> ,); ,} }); MyComponent export default 添加;
<强> React.Component (ES6) 强>
import 反应,{,Component },得到& # 39;反应# 39;; class MyComponent  extends Component  { ,构造函数(道具){ ,超级(道具); ,} , ,使(){ ,return ( & lt;才能div> ES6方式创建的组件& lt;/div> ,); ,} } MyComponent.propTypes =, { ,nameProp: React.PropTypes.string }; MyComponent.defaultProps =, { ,nameProp: & # 39; & # 39; }; MyComponent export default 添加;
<强>三、状态强>
。使用ES6类语法创建组件,初始化状态的工作要在构造函数中完成。不需要再调用getInitialState方法。这种语法更加的符合JavaScript语言习惯。
<>强反应。createClass 强>
import React 得到& # 39;反应# 39;; const MyComponent =, React.createClass ({ ,getInitialState:函数(),{ {,return ,数据:[],}; }, , ,呈现:函数(),{ ,return ( & lt;才能div>以前的方式创建的组件& lt;/div> ,); ,} }); MyComponent export default 添加;
<强> React.Component (ES6) 强>
import 反应,{,Component },得到& # 39;反应# 39;; class MyComponent  extends Component  { ,构造函数(道具){ ,超级(道具); ,this.state =,{,数据:[],}; ,} , ,使(){ ,return ( & lt;才能div> ES6方式创建的组件& lt;/div> ,); ,} } MyComponent export default 添加;
<强>四,这强>
。使用ES6类语法创建组件,类中的方法不会自动将这绑定到实例中。必须使用<代码> .bind(这)> 代码或者箭头函数=祝辞来进行手动绑定。
<>强反应。createClass 强>
import React 得到& # 39;反应# 39;; const MyComponent =, React.createClass ({ ,handleClick:函数(),{ ,console.log(这个); }, ,呈现:函数(),{ ,return ( & lt;才能div onClick={this.handleClick}祝辞以前的方式创建的组件& lt;/div> ,); ,} }); MyComponent export default 添加;
<强> React.Component (ES6) 强>
import 反应,{,Component },得到& # 39;反应# 39;; class MyComponent  extends Component  { ,handleClick (), { ,console.log(这个); ,} , ,使(){ ,return ( & lt;才能div onClick={this.handleClick.bind()}祝辞ES6方式创建的组件& lt;/div> ,); ,} } MyComponent export default 添加;反应组件怎么利用ES6语法进行重构