multiple - ¿Diferencia entre ''exportar'' y ''exportar por defecto'' en JavaScript?
javascript export class example (2)
Esta pregunta ya tiene una respuesta aquí:
- Javascript (ES6), export const vs export default 6 respuestas
¿Cuál es exactamente la diferencia entre los dos? He visto a gente usar:
function foo () {
...
}
export default foo;
Y he visto:
function bar () {
...
}
export bar;
Además, ¿por qué usarías el uno sobre el otro?
Es más fácil simplemente observar a qué se combinan los tres estilos diferentes de importación / exportación de ES6 en 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'';
Compila aproximadamente a:
exports.foo = foo;
exports[''default''] = foo;
module.exports = foo;
var foo = require(''blah'').foo;
var foo = require(''blah'')[''default''];
var foo = require(''blah'');
(La salida real del compilador puede diferir)
Si su necesidad es exportar múltiples objetos vaya con las exportaciones nombradas (sin palabra clave predeterminada).
function x1(){};
function x2(){};
export {x1},{x2}; //my-module.js
import {x1},{x2} from ''my-module'';
de lo contrario, para una sola exportación, la exportación predeterminada funciona bien
export default function x1() {};
import x1 from ''my-module'';