Что такое "экспорт по умолчанию" в javascript?
Файл: SafeString.js
// Build out our basic SafeString type
function SafeString(string) {
this.string = string;
}
SafeString.prototype.toString = function() {
return "" + this.string;
};
export default SafeString;
Я никогда раньше не видел export default
. Есть ли эквивалентные вещи для export default
, которые легче понять?
Ответы
Ответ 1
Это часть модульной системы ES6, описанная здесь. В этой документации также есть полезный пример:
Если модуль определяет экспорт по умолчанию:
export default function() { console.log("hello!") }
затем вы можете импортировать этот экспорт по умолчанию, не используя фигурные скобки:
import foo from "foo";
foo(); // hello!
Обновление: По состоянию на июнь 2015 года система модулей определена в §15.2, а синтаксис export
, в частности, определен в §15.2.3 спецификации ECMAScript 2015 ,
Ответ 2
export default
используется для экспорта одного класса, функции или примитива из файла script.
Экспорт также может быть записан как
export default function SafeString(string) {
this.string = string;
}
SafeString.prototype.toString = function() {
return "" + this.string;
};
Используется для импорта этой функции в другой файл script
Скажите в app.js, вы можете
import SafeString from './handlebars/safe-string';
Немного об экспорте
Как сказано в названии, оно используется для экспорта функций, объектов, классов или выражений из script файлов или модулей
Utiliites.js
export function cube(x) {
return x * x * x;
}
export const foo = Math.PI + Math.SQRT2;
Это можно импортировать и использовать как
App.js
import { cube, foo } from 'Utilities';
console.log(cube(3)); // 27
console.log(foo); // 4.555806215962888
или
import * as utilities from 'Utilities';
console.log(utilities.cube(3)); // 27
console.log(utilities.foo); // 4.555806215962888
При использовании экспорта по умолчанию это намного проще. script файлы просто экспортируют одну вещь.
cube.js
export default function cube(x) {
return x * x * x;
};
и используется как
App.js
import Cube from 'cube';
console.log(Cube(3)); // 27
Ответ 3
export default function(){}
можно использовать, когда функция не имеет названия. В файле может быть только один экспорт по умолчанию. Альтернативой является именованный экспорт.
На этой странице подробно описывается export default
, а также другие подробности о модулях, которые я считаю очень полезными.
Ответ 4
Как объяснено на этой странице MDN
Существует два различных типа экспорта: именованные и стандартные. Ты можешь иметь несколько именованных экспортов на модуль, но только один по умолчанию экспорт [...] Именованные экспорты полезны для экспорта нескольких значений. В течение При импорте обязательно использовать одноименное название соответствующего object.But экспорт по умолчанию может быть импортирован с любым именем
Например:
let myVar; export default myVar = 123; // in file my-module.js
import myExportedVar from './my-module' // we have the freedom to use 'import myExportedVar' instead of 'import myVar' because myVar was defined as default export
console.log(myExportedVar); // will log 123
Ответ 5
По моему мнению, важен экспорт по умолчанию, который МОЖЕТ быть импортирован с ЛЮБОМ именем!
если есть файл foo.js, который экспортирует по умолчанию:
export default function foo(){}