使用React.createClass而不是ES6 Classes(扩展React.Component)?

时间:2016-03-28 06:39:07

标签: reactjs

使用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

1 个答案:

答案 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>;

他们是最简单的选择,他们通过简单地不包括它来解决上面的许多歧义。它只是一个以道具为参数的函数。