使用React.createClass定义我的组件而不是使用我从React.Component扩展的ES6方法有什么害处吗?
下面是使用React.createClass创建Circle组件并使用ES6类方法创建Circle2组件的示例:
var Circle = React.createClass({
render: function() {
return (
<p>Hello</p>
);
}
});
class Circle2 extends React.Component {
render() {
return <p>Hello</p>;
}
}
我已经阅读了两种方法之间的技术差异,但是我告诉自己(和其他人)使用React.createClass完全没问题我做错了吗?
谢谢,
Kirupa
答案 0 :(得分:1)
使用React.createClass
没有任何害处。它仍然是官方建议in the docs和非正式建议from the devs。
事实上,由于某些原因,我认为我认为它仍然是比课程更好的解决方案。
对象文字语法是一种非常直观的定义属性的方法,大多数Javascript开发人员已经非常熟悉它。
我听说它认为类语法更优雅,但是使用对象文字速记和箭头函数,对createClass
的调用也非常具有表现力。
const Circle = React.createClass({
render() {
return (
<p>Hello</p>
);
}
});
当然,您应该寻找机会使用无状态函数,而不是其他任何一个。
const Circle = (props) => <p>Hello</p>;
他们是最简单的选择,他们通过简单地不包括它来解决上面的许多歧义。它只是一个以道具为参数的函数。