【发布时间】:2020-03-21 08:05:30
【问题描述】:
我在很多文件中都看到过这种语法:
import React, {Component} from react;
我了解命名导出和默认导出如何分别工作,但我不确定 React 在导出代码时如何处理这个问题。
例如,默认 React 是否导出一个包含组件作为命名导出函数的对象?这就是为什么你可以使用 React.Component 点符号?
【问题讨论】:
-
"是默认导出对象" - 是的。 “...包含组件” - 是的。 “…as a named export” - 呃,不,一个对象包含未命名为 export 的对象属性?
-
@ClaireLin 真的值得单独回答。我会投票
-
@Bergi 那么在这种情况下,对象的属性是否隐式导出,以便它们可以用作命名导入?在我阅读的一些关于模块的教程中,我没有遇到过这个问题。
-
@jobe 不,模块中没有任何隐含的内容,如果您想将某些内容同时导出为默认导出对象的属性和命名导出,那么您需要明确地这样做。但是,似乎React doesn't use ES6 exports at all 并依赖于编译器来确定导入。 React 是 ES6 模块使用的一个非常糟糕的例子,当最佳实践没有完全弄清楚时,他们是早期采用者,现在他们无法改变他们正在做的事情以实现向后兼容性。
标签: javascript reactjs ecmascript-6 module