export default class Book extends Component VS export default Book

Nir*_*kya 7 javascript reactjs

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

第1名

    export default class BookingTabs extends Component {
  render() {
    return (
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

第2号

class Book extends Component {
  render() {
    return (
    );
  }
}
export default Book
Run Code Online (Sandbox Code Playgroud)

问题:

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

Sep*_*ehr 5

它们之间没有区别。但是当您想使用一些高阶组件时,应该使用第二个组件。例如,您要对Redux应用程序使用“连接”。你必须写

class Book extends Component {
  render() {
    return (
    );
  }
}
export default connect(Book)
Run Code Online (Sandbox Code Playgroud)


Kun*_*ukn 4

* 哪一个使用起来更有效率?

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

第 1 种可以声明没有名称的类,例如

export default class extends Component {
  render() {
    return (
      <div>markup</div>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

* 导出默认值和 module.export 有什么区别?

第一个是 ES6 模块(将在不久的将来被浏览器理解),后者是 NodeJS 模块(https://nodejs.org/docs/latest/api/modules.html#modules_module)。如果您四处搜索,Stackoverflow 中已经对此进行了很好的解释,例如/sf/answers/2820670191/