import utilityRemove from 'lodash/array/remove';
import utilityAssign from 'lodash/object/assign';
import utilityRandom from 'lodash/number/random';
import utilityFind from 'lodash/collection/find';
import utilityWhere from 'lodash/collection/where';
let util;
util = {};
util.remove = utilityRemove;
util.assign = utilityAssign;
util.random = utilityRandom;
util.find = utilityFind;
util.where = utilityWhere;
使用ES6模块系统有更好的方法吗?
答案 0 :(得分:3)
如果这些是模块中唯一的符号,我会缩短名称并使用新的对象速记来执行:
import remove from 'lodash/array/remove';
import assign from 'lodash/object/assign';
import random from 'lodash/number/random';
import find from 'lodash/collection/find';
import where from 'lodash/collection/where';
let util = {
remove,
assign,
random,
find,
where
};
如果这可能会导致冲突,您可以考虑移动它部分到自己的模块。能够在测试时替换lodash方法可能有用。
由于每个符号来自不同的模块,因此您无法组合导入,除非lodash为此目的提供组合导入模块。
如果您只是在不使用符号的情况下导出符号,您还可以考虑this syntax:
export remove from 'lodash/array/remove';
export assign from 'lodash/object/assign';
对于任何导入和使用您的模块,将显示为:
import {remove, assign} from 'your-module';
答案 1 :(得分:1)
您可以在utils模块中执行此操作:
//utils.js
export remove from 'lodash/array/remove';
export assign from 'lodash/object/assign';
export random from 'lodash/number/random';
export find from 'lodash/collection/find';
export where from 'lodash/collection/where';
并像这样使用它:
import * as util from './utils';
...
util.random();