创建模块

Class vs React.createClass vs stateless

  • 如果你的模块有内部状态或者是refs, 推荐使用 class extends React.Component 而不是 React.createClass.
    eslint: react/prefer-es6-class react/prefer-stateless-function

    1. // bad
    2. const Listing = React.createClass({
    3. // ...
    4. render() {
    5. return <div>{this.state.hello}</div>;
    6. }
    7. });
    8. // good
    9. class Listing extends React.Component {
    10. // ...
    11. render() {
    12. return <div>{this.state.hello}</div>;
    13. }
    14. }

    如果你的模块没有状态或是没有引用refs, 推荐使用普通函数(非箭头函数)而不是类:

    1. // bad
    2. class Listing extends React.Component {
    3. render() {
    4. return <div>{this.props.hello}</div>;
    5. }
    6. }
    7. // bad (relying on function name inference is discouraged)
    8. const Listing = ({ hello }) => (
    9. <div>{hello}</div>
    10. );
    11. // good
    12. function Listing({ hello }) {
    13. return <div>{hello}</div>;
    14. }