es6从下划线导入

per*_*ai1 10 javascript ecmascript-6

我想仔细检查,以确保我了解进口足以知道是否可以import {_.identity} from 'underscore'反对import _ from 'underscore'?如果特定文件,这是下划线的唯一用途.

谢谢您的帮助

Spe*_*pen 21

看起来你非常接近!

有几种方法可以做到这一点.

IMO最干净的方法就是这样:

import { map, reduce, somethingElse } from 'underscore'
Run Code Online (Sandbox Code Playgroud)

允许您调用这些方法:

map(things, thing => {
    ...
})
Run Code Online (Sandbox Code Playgroud)

'{map,reduce} = ...'部分是es6s解构赋值.有关详细信息,请参阅Mozilla文档页面!

另一种方法是:

import map from 'underscore/map'
import reduce from 'underscore/reduce'
Run Code Online (Sandbox Code Playgroud)

就个人而言,我不是很喜欢这个,因为它可以开始变得更麻烦,因为更多的方法被拉入但它确实有一点点优势,您可以根据需要命名引用:

import mappy from 'underscore/map'
import reducerify from 'underscore/reduce'
Run Code Online (Sandbox Code Playgroud)

虽然我不建议使用这些名字!

  • 我会小心命名从underscore/lodash导入,因为像map和reduce这样的函数已经有了JS实现,这会产生冲突.通常最好将它们命名为_map,_reduce,或者像@Spen建议的那样奇怪的东西. (5认同)