it-roy-ru.com

ES6 функция экспорта по умолчанию

могу ли я экспортировать более одной функции в файл? Кажется, когда я делаю это, вторая функция ovverides первой, 

пример: в файле my index.js:

export default function aFnt(){
    console.log("function a");
}
export default function bFnt(){
    console.log("function b");
}

затем, когда я импортирую его в мой файл:

import aFnt from "./index";

console.log("aFnt : ",aFnt);

результат console.log - bFnt 

что именно здесь происходит? я должен создать новый файл для каждой функции? это не очень практично, любое решение или обходной путь? 

12
sisimh

madox2's ответ полностью работает, если вы хотите импортировать именованные функции. 

Если вы все еще хотите импортировать значение по умолчанию, есть еще один метод:

function a() {}

function b() {}

export default { a, b }

и когда вы импортируете:

import myObject from './index.js';

myObject.a(); // function a
myObject.b(); // function b

Надеюсь, это поможет!

36
Bobby Matson

Вы можете использовать именованный экспорт вместо значения по умолчанию:

export function aFnt(){
    console.log("function a");
}
export function bFnt(){
    console.log("function b");
}

и импортировать это как:

import {aFnt, bFnt} from "./index";
13
madox2

есть несколько способов экспортировать и импортировать объекты/функции

export function first() {}
export function second() {}

в другом файле

import { first, second} from './somepath/somefile/';

если вы хотите использовать default, обычно, если в файле есть только один экспорт, это должен быть экспорт по умолчанию. но если по каким-то причинам вам нужны две функции по умолчанию, то вам нужно объединить их как объект и экспортировать этот объект по умолчанию

function first() {}
function second() {}
const funcs= {"first":first,"second":second}
export default funcs;

в другом файле 

import funcs from './somepath/somefile/';
funcs.first();funs.second();

это должно быть так.

0
hannad rehman