javascript - green - nodejs es7 support
¿Qué es "exportar por defecto" en javascript? (4)
Como se explica en esta página de MDN
Hay dos tipos diferentes de exportación, nombrados y predeterminados. Puede tener múltiples exportaciones nombradas por módulo, pero solo una exportación predeterminada [...] Exportaciones nombradas son útiles para exportar varios valores. Durante la importación, es obligatorio usar el mismo nombre del objeto correspondiente. Pero una exportación predeterminada se puede importar con cualquier nombre
Por ejemplo:
let myVar; export default myVar = 123; // in file my-module.js
import myExportedVar from ''./my-module'' // we have the freedom to use ''import myExportedVar'' instead of ''import myVar'' because myVar was defined as default export
console.log(myExportedVar); // will log 123
Archivo: SafeString.js
// Build out our basic SafeString type
function SafeString(string) {
this.string = string;
}
SafeString.prototype.toString = function() {
return "" + this.string;
};
export default SafeString;
Nunca he visto la export default
antes. ¿Hay algún material equivalente para export default
que pueda ser más fácil de entender?
Es parte del sistema de módulos ES6, descrito aquí . Hay un ejemplo útil en esa documentación, también:
Si un módulo define una exportación por defecto:
export default function() { console.log("hello!") }
luego puede importar esa exportación predeterminada omitiendo las llaves:
import foo from "foo"; foo(); // hello!
Actualización: a partir de junio de 2015, el sistema de módulos se define en §15.2 y la sintaxis de export
en particular se define en §15.2.3 de la especificación ECMAScript 2015.
export default function(){}
se puede usar cuando la función no tiene nombre. Solo puede haber una exportación predeterminada en un archivo. La alternativa es una exportación con nombre.
Esta page describe la export default
en detalle, así como otros detalles sobre los módulos que me parecieron muy útiles.
export default
se utiliza para exportar una sola clase, función o primitiva desde un archivo de script.
La exportación también se puede escribir como
export default function SafeString(string) {
this.string = string;
}
SafeString.prototype.toString = function() {
return "" + this.string;
};
Esto se usa para importar esta función en otro archivo de script
Di en app.js , tu puedes
import SafeString from ''./handlebars/safe-string'';
Un poco sobre la exportación
Como su nombre lo indica, se utiliza para exportar funciones, objetos, clases o expresiones desde archivos de script o módulos
Utiliites.js
export function cube(x) {
return x * x * x;
}
export const foo = Math.PI + Math.SQRT2;
Esto puede ser importado y usado como
App.js
import { cube, foo } from ''Utilities'';
console.log(cube(3)); // 27
console.log(foo); // 4.555806215962888
O
import * as utilities from ''Utilities'';
console.log(utilities.cube(3)); // 27
console.log(utilities.foo); // 4.555806215962888
Cuando se utiliza el valor predeterminado de exportación, esto es mucho más simple. Los archivos de script solo exportan una cosa. cube.js
export default function cube(x) {
return x * x * x;
};
y utilizado como App.js
import Cube from ''cube'';
console.log(Cube(3)); // 27