wake-up-neo.net

Was ist "Export Standard" in Javascript?

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?

463
damphat

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.

373
p.s.w.g

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';

Ein bisschen über den Export

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
123
sudo bangbang

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.

68
Greg Gum

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
9
manfall19