187 votes

Plusieurs classes dans l’ES6 modules d’exportation

Je suis en train de créer un module qui exporte plusieurs ES6 classes. Disons que j'ai la structure de répertoire suivante:

my/
└── module/
    ├── Foo.js
    ├── Bar.js
    └── index.js

Foo.js et Bar.js d'exportation par défaut ES6 classe:

// Foo.js
export default class Foo {
  // class definition
}

// Bar.js
export default class Bar {
  // class definition
}

J'ai actuellement mon index.js configurer comme ceci:

import Foo from './Foo';
import Bar from './Bar';

export default {
  Foo,
  Bar,
}

Cependant, je n'arrive pas à importer. Je veux être capable de faire cela, mais les classes ne sont pas trouvés:

import {Foo, Bar} from 'my/module';

Quelle est la bonne façon d'exporter plusieurs classes dans un ES6 module?

324voto

webdeb Points 1383

Essayez ceci dans votre code :

BTW, vous pouvez également le faire de cette façon :

À l’aide de ``

La différence de ``

est que vous pouvez exporter quelque chose et appliquer le nom lorsque vous l’importez

22voto

Syed Points 392
J'espère que cela vous a aidé.

9voto

inostia Points 2696

réponse de @webdeb n’a pas fonctionné pour moi, j’ai touché une `` erreur lors de la compilation ES6 avec Babel, les exportations de faire nommé default.

Cela a fonctionné pour moi, cependant :

4voto

PaoPao Points 11
// export in index.js
export { default as Foo } from './Foo';
export { default as Bar } from './Bar';

// then import both
import { Foo, Bar } from 'my/module';

-4voto

Schmidko Points 73

Pour exporter les instances des classes, vous pouvez utiliser cette syntaxe :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X