Это импорт по умолчанию.
import _ from 'lodash';
_.map(...);
Это назвал импорт.
import { map } from 'lodash';
map(...);
Использование map()
как метод импорта по умолчанию и в качестве отдельной функции, по существу, то же самое (с единственным значимым отличием является value of this
). Какой синтаксис работает до библиотеки, которую вы импортируете. Вы можете использовать импорт по умолчанию, если библиотека определяет экспорт по умолчанию и тот же для имён import/exports. Оба могут также использоваться одновременно, хотя это немного необычно.
По умолчанию импорт можно назвать тем, что желает ваше сердце. Если вы хотите запутать людей и притвориться, что Lodash - это jQuery, вы можете это сделать.
`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';
Последний просто сахар для первого. И синтаксис экспорта по умолчанию - это сахар для создания именованного экспорта с именем default
.
Для получения дополнительной информации (включая функции, не указанные здесь), см. ES6 modules syntax.
Полный пример:
import { map } from 'lodash';
const squares = map([4, 8], (n) => {
return n * n;
});
console.log(squares); // => [16, 64]
карта (yourfunc) .bind ([1,2,3,4]); –
Импорт синтаксиса не разрушает. Это создает псевдонимы, не более. – Bergi