React.createClass
- 创建组件类的方法。
为了更好地与ES6模块结合使用,可以使用React.Component
继承来代替调用createClass
。
两者之间的一些区别是:
语法:
React.createClass:
var MyComponent = React.createClass({ });
React.Component:
export default class MyComponent extends React.Component{ }
getInitialState() :
React.createClass:
有
React.Component:
没有
constructor() :
React.createClass:
没有
React.Component:
有
propTypes 语法 :
React.createClass:
var MyComponent = React.createClass({
propTypes: { }
});
React.Component:
export default class MyComponent extends React.Component{ }
MyComponent.prototypes = { }
默认属性:React.createClass:
var MyComponent = React.createClass({
getDefaultProps(): { return {} }
});
React.Component:
export default class MyComponent extends React.Component{ }
MyComponent.defaultProps = { }
状态:
React.createClass:
State changes can be made inside getInitialState() function
React.Component:
State changes can be made inside constructor(props) function
这个:
React.createClass:
automatically bind 'this' values.
Ex: <div onClick={this.handleClick}></div>
'this' can be accessed by default in handleClick function
React.Component:
whereas here we need to bind explicitly,
Ex: <div onClick={this.handleClick.bind(this)}></div>
MyComponent extends React.Component
的情况下不支持混合(mixins)。 - gcedo