我已经阅读了几本React Native的教程和指南,看到这两个教程几乎以同样的方式使用:
var anyName = React.createClass({
render: function() {
return (
...
);
}
});
和
class anyName extends Component {
render() {
return (
...
)
}
}
不确定它们之间有什么区别。
答案 0 :(得分:4)
第一段代码以旧方式(ES5)创建新的JS对象。它只是创建普通的JS对象,然后使用prototypes
用React方法和属性填充它。
React.createClass
方法的对象填充 render
方法。 (您可以阅读有关此方法的更多信息here。
第二个代码使用最新的JS标准(ES6)类和继承。实际上Component
是ReactComponent
,您可以阅读更多相关信息here。
请注意,这两种初始化React Component的方法会给你带来明显不同的结果。例如,此时您不能使用mixins
进行ES6继承,并且必须使用bind
方法来创建父对象。您可以阅读有关差异here的更多信息。