导出默认类Book扩展组件VS导出默认Book



我是新手,所以我想知道哪一个更有效,哪一个时间复杂度最高。

没有。1

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

没有。2

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

问题:

  • 使用哪一个更有效
  • 哪一个耗时更少?甚至相差几微秒
  • export-default和module.export有什么不同

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

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

*使用哪一个更高效

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

没有。1提供了在没有名称(如)的情况下声明类的可能性

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

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

*哪一个耗时更少?甚至相差几微秒

您的目标可能是那些不了解ES6模块(导入/导出)的浏览器。编译后的代码是相同的。我建议你玩https://babeljs.io/repl/了解生成了什么

*导出默认值和模块导出之间有什么不同

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