ES6模块:导出和导入性能差异

时间:2017-10-26 15:38:13

标签: javascript performance module es6-modules

我的vue项目中有一些组件。我不喜欢import loader from '@/components/someComponent1/someComponent1.vue';,因为写的很多,我必须为每个组件重复它。所以我为index.js文件夹写了一个components

export { default as someComponent1 } from './someComponent1/someComponent1.vue';
export { default as someComponent2 } from './someComponent2/someComponent2.vue';
...

这将允许我在一行中导入多个组件:

import { someComponent1, someComponent2 } from '@/components';

我的问题:index.js - ish-way是否可能比通常的进口更慢(甚至可能是不好的做法)?我想知道,因为在上面的示例中执行“加载”整个导出的对象并对其进行解构,而“正常”导入则不是这样。

1 个答案:

答案 0 :(得分:5)

不,它不慢(不是很多,当然它必须再加载一个文件,而IO将占用大部分额外的时间)。

导入始终加载整个模块,创建所有导出的值,并解析导入的绑定。是否仅使用一个或所有导出的绑定并不重要。导入声明使用的语法并不重要。分辨率是否通过额外的index.js文件并不重要,最后在运行时使用的引用完全相同。

相反,我认为使用这样的index.js文件是一个好习惯,如果它可以使你的模块更易于维护。