【问题标题】:Difference between import {module} and import module [duplicate]导入 {module} 和导入模块之间的区别 [重复]
【发布时间】:2018-03-19 00:17:46
【问题描述】:

我在 ES6 中看到了以下两种从另一个模块导入代码的变体:

import {module}  from "./Module"

import module from "./Module"

其中module是文件中定义的ES6类

模块.js

这两个import语句有什么区别?

【问题讨论】:

    标签: javascript ecmascript-6


    【解决方案1】:

    不同之处在于它的导出方式。

    export default const myModule = {}
    

    基本上它说“这是默认导出”。你用

    导入这个
    import myModule from 'module'
    

    另一种方式是可以像这样导出多个入口点:

    export const myModule1 = {}
    export const myModule2 = {}
    

    你用

    导入这些
    import {myModule1, myModule2} from 'module'
    

    如果同时导出默认入口点和命名入口点,您可以这样做:

    import myModule, {myModule1, myModule2} from 'module'
    

    这似乎不完全合乎逻辑,通常包作者应该解释他们的模块应该如何导入。如果您是作者,这将对您有所帮助

    【讨论】:

    • 上次导入时缺少逗号
    【解决方案2】:

    第一种情况

    import {module}  from "./Module"
    

    您正在从一个模块导入单个导出并在当前范围内插入“模块”。在Module.js 文件中,您必须命名为exports:

    export { module, module2 }; 
    

    请注意有两个命名导出,但您只导入一个。

    在第二个示例中,您正在导入默认导出:

    import module from "./Module"
    

    在您的Module.js 文件中导出可能如下所示:

    导出默认模块3;

    请注意,您可以使用不同的名称导入默认值。

    【讨论】:

      猜你喜欢
      • 2017-06-21
      • 2012-10-26
      • 2013-01-20
      • 2018-12-29
      • 2012-08-29
      • 2019-09-21
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      相关资源
      最近更新 更多