Datei: SafeString.js
// Build out our basic SafeString type
function SafeString(string) {
this.string = string;
}
SafeString.prototype.toString = function() {
return "" + this.string;
};
export default SafeString;
Ich habe export default
noch nie gesehen. Gibt es gleichwertige Dinge für export default
, die leichter zu verstehen sind?
Es ist Teil des ES6-Modulsystems, hier beschrieben . In dieser Dokumentation gibt es ein hilfreiches Beispiel, außerdem:
Wenn ein Modul einen Standardexport definiert:
export default function() { console.log("hello!") }
dann können Sie diesen Standardexport importieren, indem Sie die geschweiften Klammern weglassen:
import foo from "foo"; foo(); // hello!
Update: Ab Juni 2015 ist das Modulsystem in §15.2 und insbesondere in der export
-Syntax definiert ist in §15.2. der ECMAScript 2015-Spezifikation definiert.
export default
wird zum Exportieren einer einzelnen Klasse, Funktion oder eines Grundelements aus einer Skriptdatei verwendet.
Der Export kann auch als geschrieben werden
export default function SafeString(string) {
this.string = string;
}
SafeString.prototype.toString = function() {
return "" + this.string;
};
Dies wird verwendet, um diese Funktion in eine andere Skriptdatei zu importieren
Sagen Sie in app.js, Sie können
import SafeString from './handlebars/safe-string';
Wie der Name schon sagt, werden damit Funktionen, Objekte, Klassen oder Ausdrücke aus Skriptdateien oder Modulen exportiert
tiliites.js
export function cube(x) {
return x * x * x;
}
export const foo = Math.PI + Math.SQRT2;
Dies kann importiert und verwendet werden als
App.js
import { cube, foo } from 'Utilities';
console.log(cube(3)); // 27
console.log(foo); // 4.555806215962888
Oder
import * as utilities from 'Utilities';
console.log(utilities.cube(3)); // 27
console.log(utilities.foo); // 4.555806215962888
Wenn der Exportstandard verwendet wird, ist dies viel einfacher. Skriptdateien exportieren nur eine Sache. cube.js
export default function cube(x) {
return x * x * x;
};
und verwendet als App.js
import Cube from 'cube';
console.log(Cube(3)); // 27
export default function(){}
kann verwendet werden, wenn die Funktion keinen Namen hat. In einer Datei kann es nur einen Standardexport geben. Die Alternative ist ein benannter Export.
Diese Seite beschreibt export default
im Detail sowie andere Details zu Modulen, die ich sehr hilfreich fand.
Wie auf dieser Seite erklärt MDN-Seite
Es gibt zwei verschiedene Exportarten: benannt und voreingestellt. Sie können mehrere benannte Exporte pro Modul haben, aber nur ein Standardexport [...] für benannte Exporte ist nützlich, um mehrere Werte zu exportieren. Während des Imports muss derselbe Name des entsprechenden Objekts verwendet werden. Ein Standardexport kann jedoch mit einem beliebigen Namen importiert werden
Zum Beispiel:
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