Что такое "экспорт по умолчанию" в 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 что может быть проще для понимания?

3 ответов


это часть модульной системы ES6,описано здесь. В этой документации также есть полезный пример:

Если модуль определяет экспорт по умолчанию:

export default function() { console.log("hello!") }

затем вы можете импортировать этот экспорт по умолчанию, опустив фигурные скобки:

import foo from "foo";
foo(); // hello!

обновление: по состоянию на 2 февраля 2015 года, модульная система определена в §15.2 и export синтаксис в частности определено в §15.2.3 проекта спецификации ES6. Конечно, поскольку это все еще проект, это может измениться в будущем.


export default используется для экспорта одного класса, функции или примитивные из файла сценария.

экспорт также может быть записан как

export default function SafeString(string) {
  this.string = string;
}

SafeString.prototype.toString = function() {
  return "" + this.string;
};

используется для импорта этой функции в другой файл скрипта

сказать app.js вы можете

import SafeString from './handlebars/safe-string';

немного об экспорте

как говорится в названии, он используется для экспорта функций, объектов, классов или выражений из файлов сценариев или модули

дополнительные.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

когда используется экспорт по умолчанию, это намного проще. Файлы скриптов экспортируют только одно. Куба.js

export default function cube(x) {
  return x * x * x;
};

и используется в качестве App.js

import Cube from 'cube';
console.log(Cube(3)); // 27

export default function(){} может использоваться, когда функция не имеет имени. В файле может быть только один экспорт по умолчанию. Альтернативой является именованный экспорт.

этой страница описание export default подробно, а также другие подробности о модулях, которые я нашел очень полезными.