71 votes

Différence entre "export" et "export default" en JavaScript ?

Quelle est la différence entre les deux ? J'ai vu des gens utiliser :

function foo () {
  ...
}

export default foo;

Et j'ai vu :

function bar () {
  ...
}

export bar;

Par ailleurs, pourquoi utiliser l'un plutôt que l'autre ?

3 votes

142voto

Jesse Points 633

Le plus simple est de regarder à quoi correspondent les trois styles d'import/export ES6 dans CommonJS.

// Three different export styles
export foo;
export default foo;
export = foo;

// The three matching import styles
import {foo} from 'blah';
import foo from 'blah';
import * as foo from 'blah';

En gros, cela correspond à :

exports.foo = foo;
exports['default'] = foo;
module.exports = foo;

var foo = require('blah').foo;
var foo = require('blah')['default'];
var foo = require('blah');

(La sortie du compilateur peut être différente)

5 votes

Génial, c'est vraiment utile.......

29voto

sanket Points 442

Si vous avez besoin d'exporter plusieurs objets, utilisez les exportations nommées (sans mot-clé par défaut).

function x1(){};
function x2(){};
export {x1},{x2};  //my-module.js
import {x1},{x2} from 'my-module';

sinon, pour une exportation unique, l'exportation par défaut fonctionne bien

export default function x1() {};
import x1 from 'my-module';

6 votes

Cela n'a rien à voir avec la default mot-clé

4 votes

D'accord avec @ieXcept. la default Le mot-clé n'a rien à voir avec les exportations multiples. Il s'agit d'exportations nommées ou non nommées.

3 votes

Par défaut, il s'agit toujours d'une exportation nommée. Il est exporté sous default nom.

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