我有一个拉请求反馈下面,只是想知道哪种方式是导入lodash的正确方式?

你最好从'lodash/has'导入has ..对于早期版本 lodash (v3)本身就很重,我们应该只导入 一个特殊的模块/函数,而不是导入整个lodash 图书馆。不确定更新的版本(v4)。

import has from 'lodash/has';

vs

import { has } from 'lodash';

谢谢


当前回答

导入花括号内的特定方法 从'lodash'导入{map, tail, times, uniq}; 优点: 只有一个导入行(用于相当数量的函数) 更可读的用法:map()而不是后面javascript代码中的_.map()。 缺点: 每当我们想要使用一个新功能或停止使用另一个功能时,它都需要维护和管理

摘自:导入Lodash库的正确方法——Alexander Chertkov写的一篇基准文章。

其他回答

Import has from 'lodash/has';更好,因为lodash在一个文件中保存了它所有的函数,所以与其在100k导入整个'lodash'库,不如只导入lodash的has函数,它可能是2k。

您可以导入它们为

import {concat, filter, orderBy} from 'lodash';

或者是

import concat from 'lodash/concat';
import orderBy from 'lodash/orderBy';
import filter from 'lodash/filter';

第二个比第一个优化得多,因为它只加载所需的模块

然后像这样使用

pendingArray: concat(
                    orderBy(
                        filter(payload, obj => obj.flag),
                        ['flag'],
                        ['desc'],
                    ),
                    filter(payload, obj => !obj.flag),

导入花括号内的特定方法 从'lodash'导入{map, tail, times, uniq}; 优点: 只有一个导入行(用于相当数量的函数) 更可读的用法:map()而不是后面javascript代码中的_.map()。 缺点: 每当我们想要使用一个新功能或停止使用另一个功能时,它都需要维护和管理

摘自:导入Lodash库的正确方法——Alexander Chertkov写的一篇基准文章。

从 'lodash' 导入 { cloneDeep, groupBy };

我认为这是更简单的时候,你不需要转换数组到lodash对象使用_。

const groupData = groupBy(expandedData, (x) => x.room.name);

如果你正在使用babel,你应该检查babel-plugin-lodash,它会挑选你正在使用的lodash的部分,更少的麻烦和更小的捆绑。

它有一些局限性:

你必须使用ES2015导入来加载Lodash 不支持Babel < 6 & Node.js < 4 不支持链序列。请参阅这篇博客文章以获得替代方案。 不支持模块化的方法包