export default class Book extends Component VS export default Book

时间:2017-11-15 08:58:24

标签: javascript reactjs

我是新手做出反应所以它只是一个问题,我想知道哪一个更有效,哪个给出了最佳的时间复杂性。

没有。 1

    export default class BookingTabs extends Component {
  render() {
    return (
    );
  }
}

没有。 2

class Book extends Component {
  render() {
    return (
    );
  }
}
export default Book

问题:

  • 哪一个使用效率更高?
  • 哪一个花费的时间少?甚至微秒的差异?
  • export default和module.export之间的区别是什么?

2 个答案:

答案 0 :(得分:4)

它们之间没有区别。但是当你想使用某些高阶组件时,你应该使用第二个。 例如,您希望对redux应用程序使用“connect”。你必须写

class Book extends Component {
  render() {
    return (
    );
  }
}
export default connect(Book)

答案 1 :(得分:0)

*哪一个使用效率更高?

他们同样有效率。这是编码风格和偏好的问题。

没有。 1允许声明没有名称的类,如

export default class extends Component {
  render() {
    return (
      <div>markup</div>
    );
  }
}

没有。 2提供了在导出之前进一步使用该类的可能性。例如添加proptypes Book.propTypes = { /* prop-types defintion */}或与更高阶的组件一起使用。

*哪一个花费的时间少?甚至微秒的差异?

您的目标可能适用于本身不了解ES6模块(导入/导出)的浏览器。编译后的代码是一样的。我建议您使用https://babeljs.io/repl/来了解生成的内容

* export default和module.export之间有什么不同?

第一个是ES6模块(在不久的将来被浏览器理解),后者是NodeJS模块(https://nodejs.org/docs/latest/api/modules.html#modules_module)。如果你搜索一下,在Stackoverflow中已经很好地解释了,例如https://stackoverflow.com/a/40295288/815507