Ответ 1
Именованный экспорт:
Скажем, вы создаете файл с именем utils.js
, с функциями утилиты, которые вы хотите сделать доступными для других модулей (например, компонент React). Затем вы должны сделать каждую функцию именованным экспортом:
export function add(x, y) {
return x + y
}
export function mutiply(x, y) {
return x * y
}
Предполагая, что utils.js находится в том же каталоге, что и ваш компонент React, вы можете использовать его экспорт следующим образом:
import { add, multiply } from './utils.js';
...
add(2, 3) // Can be called wherever in your component, and would return 5.
Или, если хотите, разместите содержимое всего модуля в общем пространстве имен:
import * as utils from './utils.js';
...
utils.multiply(2,3)
Экспорт по умолчанию:
Если у вас, с другой стороны, есть модуль, который делает только одно (может быть класс React, нормальная функция, константа или что-то еще) и хотите сделать эту вещь доступной для других, вы можете использовать экспорт по умолчанию. Скажем, у нас есть файл log.js
, только с одной функцией, которая выдает любой аргумент, с которым он звонил:
export default function log(message) {
console.log(message);
}
Теперь это можно использовать следующим образом:
import log from './log.js';
...
log('test') // Would print 'test' in the console.
Вам не нужно называть его log
при его импорте, вы можете называть его любым, что хотите:
import logToConsole from './log.js';
...
logToConsole('test') // Would also print 'test' in the console.
Комбинированный:
Модуль может иметь как экспорт по умолчанию (макс. 1), так и именованный экспорт (импортированный один за другим или используя *
с псевдонимом). Реагирование действительно имеет это, считают:
import React, { Component, PropTypes } from 'react';