我试图在我的代码中使用对象破坏导入。
我想只导入map并在我的组件中扩展。
我会吗
import { map, extend } from lodash;
如何在我的代码中使用它?
Javascript也有地图,所以如果我这样做
let arr = [1,3,4];
arr.map((item) => console.log(item))
我如何参考lodash地图,而不是实际的地图方法?
PS:我试图理解对象破坏方法。我知道我可以使用ES6地图,这只是一个例子。
答案 0 :(得分:4)
这是默认导入。
Object
这是一个名为import 。
import _ from 'lodash';
_.map(...);
使用import { map } from 'lodash';
map(...);
作为默认导入的方法和独立函数基本相同(唯一有意义的区别是value of this
)。哪种语法适用于您要导入的库。如果库定义了默认导出,则只能使用默认导入,对于命名的导入/导出,只能使用相同的导入。两者也可以同时使用,虽然这有点不寻常。
默认导入可以根据您的心愿命名。如果你想让人混淆并假装Lodash是jQuery,你可以这样做。
map()
另一方面,命名导入具有绑定的特定名称。因此,与默认导入不同,尝试在`import $ from 'lodash';`
vs $
上使用命名导入语法是指一个完全不同的对象,如果未在库中定义为导出,则会抛出。
_
如果有必要,您可以“重命名”指定的导入。
// These are very different.
import { $ } from 'lodash';
import { _ } from 'lodash';
在上面的例子中,import { map as crazyFunc } from 'lodash';
可以根据你的心愿命名,但是crazyFunc
必须保持原样,否则它将引用一个完全不同的对象,如果没有被定义为在图书馆内出口。
了解这些是等效的可能会有所帮助。
map
后者只是前者的糖。默认导出语法是用于创建名为import { default as _ } from 'lodash';
import _ from 'lib';
的命名导出的糖。
有关详情(包括此处未涵盖的功能),请参阅ES6 modules syntax。
完整示例:
default