В чем разница между этими методами импорта ES6?
634 просмотра
3 ответа
В чем разница между этими методами импорта?
Способ 1:
import {sum, pi} from "lib/math";
Способ 2:
import exp, {pi, e} from "lib/mathplusplus";
Документы es2015 показали эти два примера, и я не могу понять назначение фигурных скобок. Кажется, что все вещи, перечисленные после импорта, будут все равно назначены window
объекту.
Документы для справки: https://babeljs.io/docs/learn-es2015/
Автор: Don P Источник Размещён: 12.11.2019 09:41Ответы (3)
11 плюса
модули могут экспортировать несколько вещей. Модули также могут иметь один экспорт по умолчанию.
import exp from "somelib";
Это назначает экспорт по умолчаниюsomelib
для переменной exp
.
import {a, b} from "somelib";
Это присваивает именованные экспорты не по умолчанию a
и b
локальным переменным a
и b
.
import exp, {a, b} from "somelib";
Назначает экспорт по умолчанию в exp
и именованный экспорт в a
и b
.
import * as somelib from "somelib";
Принимает все именованные экспорты somelib и назначает их как объект локальной переменной somelib
, что означает, что вы будете иметь somelib.a
, somelib.b
и т. Д.
Это очень хороший ресурс по теме: http://www.2ality.com/2014/09/es6-modules-final.html
Автор: Brandon Размещён: 08.12.2015 05:431 плюс
В данном случае exp
это default
импортируемый модуль с именем exp
. pi
и e
обернуты в фигурные скобки, потому что они не по умолчанию.
В этом примере вы определили модуль по умолчанию:
export default function(x) {
return x + x;
}
И импорт выполняется без фигурных скобок, называя его как угодно:
import double from 'mymodule';
double(2); // 4
Автор: Sterling Archer
Размещён: 08.12.2015 05:44
1 плюс
Модули могут export
двумя разными способами. Они могут использовать default
или просто выполнить стандартнуюexport
export default function exp(value, power) {}
export const pi = 3.14159
Когда вы import
из модуля, вам нужно использовать фигурные скобки для захвата экспорта не по умолчанию. Если вы хотите экспорт по умолчанию, вам не нужны скобки.
import exp, {pi} from "lib/mathplusplus";
Автор: Kyeotic
Размещён: 08.12.2015 06:15
Вопросы из категории :
- javascript Как определить, какой из указанных шрифтов был использован на веб-странице?
- javascript Валидация клиентской стороны ASP.Net
- javascript Длина объекта JavaScript
- javascript Получение текста из выпадающего списка
- javascript Скрипт входа со скрытыми кнопками
- javascript Как автоматически изменить размер текстовой области с помощью Prototype?
- ecmascript-6 What's the difference between using "let" and "var" to declare a variable in JavaScript?
- ecmascript-6 Конечно, у ES6 + должен быть способ объединить два объекта javascript вместе, что это?
- ecmascript-6 Расширяющий класс JavaScript
- ecmascript-6 Что делают фигурные скобки в выражениях `var {...} = ...`?
- ecmascript-6 let keyword in the for loop
- ecmascript-6 check if function is a generator
- babeljs Конвертировать ES6 Iterable в Array
- babeljs Как использовать модули ECMAScript6 на веб-страницах
- babeljs How to run Node.js app with ES6 features enabled?
- babeljs RegeneratorRuntime не определен
- babeljs Что означает «Генератор кода деоптимизировал стиль [некоторый файл], так как он превышает максимум« 100 КБ »»?
- babeljs Невозможно получить доступ к экземпляру React (this) внутри обработчика событий