javascript - 更高效的 ES6 导入

标签 javascript ecmascript-6

我在某处读到(不幸的是忘记了来源),这样做更有效:

import _find from 'lodash/find';

相对于:

import _ from 'lodash'; // just to use _.find

我明白导入单个函数如何更有效,但是效率/性能增益到底在哪里?与webpack相关吗?如果我不使用 webpack 作为构建引擎,这有什么关系吗?

最佳答案

当您导入一个大库时,您会导入整个内容(至少对于大多数 bundler 而言),因为没有明确的方法来区分您导入的对象中需要什么。

我对 lodash 不太熟悉,但它的入口点应该如下所示:

module.exports = {
  find: require('./find.js')
  filter: require('./filter.js')
  // rest of the exposed functions
}

使用第二种导入样式,您可以获得整个对象,但您只需要其中的 1 个函数。

所以如果你这样做:

import _ from 'lodash'

您最终会将整个 lodash 库打包到您的 bundle 中,而如果您这样做:

import find from 'lodash/find'

您将只有 find 及其依赖项,从而导致包大小显着减小。

关于javascript - 更高效的 ES6 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41418165/

相关文章:

来自变量的 Javascript 正则表达式测试

javascript - 在js文件中调用JQuery函数

javascript - Webpack/Babel ES6 错误 : Uncaught SyntaxError: Unexpected token import

javascript - 尝试使用 JS ES6 进行 gulp 时出现意外标记 {

javascript - 在返回之前使用函数

javascript - ES6 命名导出和默认导出之间的可变差异

javascript - 返回对象内键的值,作为参数传递,我做错了什么?

javascript - 将选项视为选择下拉列表上的单击事件

javascript - YUI3 按钮单击事件的行为类似于提交类型而不是按钮类型

javascript - 如何理解 Javascript Redux 中间件中的这种语法