在模块中创建对象/变量时,ES6导入/导出如何工作?

时间:2018-01-18 11:49:49

标签: javascript ecmascript-6

鉴于我在一个名为Config的文件中有一个Config.js类,我在名为myConfig.js的文件中有以下模块:

import Config from './Config.js';

const myConfig = new Config();

export myConfig;

如果我有多个文件import { myConfig } from 'myConfig.js',它是否在每个导入语句上实例化新的配置?

2 个答案:

答案 0 :(得分:3)

ES6模块是单件。 每次导入模块时,您都将获得相同的实例。 但是,您可以通过在Config构造函数中记录内容来轻松地测试它。; - )

答案 1 :(得分:0)

首先:在加载模块时删除.js扩展名。

第二:如果您打算使用export default class Config {}

加载,则应使用import Config from 'modulename'导出您的配置类

导出的值是单例,不会更改或重新调整,但仍然为什么将配置作为类?它应该是一个像

这样的const对象
export const Config = {stuff:1}