web-dev-qa-db-fra.com

Fonction par défaut d'exportation ES6

puis-je exporter plus d’une fonction par fichier? 

exemple: dans le fichier my index.js:

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

puis quand je l'importe dans mon dossier:

import aFnt from "./index";

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

le résultat du fichier console.log est bFnt 

quel est exactement le cas ici? Dois-je créer un nouveau fichier par fonction? ce n'est pas très pratique, aucune solution ou solution de contournement? 

12
sisimh

madox2's answer fonctionne totalement si vous souhaitez importer des fonctions nommées. 

Si vous souhaitez toujours importer la valeur par défaut, il existe une autre technique:

function a() {}

function b() {}

export default { a, b }

et quand vous importez:

import myObject from './index.js';

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

J'espère que ça aide!

36
Bobby Matson

Vous pouvez utiliser named export au lieu de default:

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

et l'importez comme:

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

il y a plusieurs façons d'exporter et d'importer des objets/fonctions

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

dans un autre fichier

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

si vous voulez utiliser la valeur par défaut, en général, s'il n'y a qu'une exportation dans un fichier, il doit s'agir d'une exportation par défaut. mais si pour certaines raisons vous voulez deux fonctions par défaut, vous devez les associer en tant qu'objet et exporter cet objet par défaut.

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

dans un autre fichier 

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

ça devrait être ça.

0
hannad rehman