为什么在 ES6 中不应该使用 import all

Nic*_*ers 5 javascript ecmascript-6 reactjs es6-modules

所以我最近开始学习 React 并注意到所有文档都有类似的导入:

import { Apples, Bananas, Oranges } from 'fruits';
Run Code Online (Sandbox Code Playgroud)

但是在研究 React 时我发现这种语法也同样有效:

import * as Fruits from 'fruits';
Run Code Online (Sandbox Code Playgroud)

我的问题:使用 import all 语法是否有任何性能损失或逻辑冲突?

如果没有,那么我将继续使用该语法。我宁愿更详细一点,而不必担心确保所有内容都已导入。

kin*_*ser 1

实际上 - 这取决于给定模块的导出量。

如果您导入,例如Lodash您可能不想导入整个库,则应该仅导入将在应用程序中使用的这些方法:

import { isEmpty, pickBy, orderBy } from 'lodash';

以避免性能损失和内存浪费。

但是,如果您给定的模块仅包含几种方法,或者基本上您将使用每个导出,那么您可以自由地使用该快捷方式:

import * as Fruits from 'fruits';

注意:我想您正在使用webpack 2,它实际上包括三摇算法,可以使捆绑包最小化。