Heim Web-Frontend js-Tutorial Ausführliche Erläuterung der Unterschiede und Zusammenhänge zwischen Export Default, Require and Exports und Export

Ausführliche Erläuterung der Unterschiede und Zusammenhänge zwischen Export Default, Require and Exports und Export

Jun 22, 2017 am 11:53 AM
default export

Sind Sie immer noch besorgt über die Unterschiede und Zusammenhänge zwischen module.exports, exports, export und export default, import und require? Dieser Artikel reicht im Grunde aus!

1. Lassen Sie uns zunächst eine grundlegende Frage klären:

module.exports und exports gehören zum CommonJS Modulspezifikation! (Sie sind sich bei CommonJS nicht sicher? Meister, werfen Sie bitte einen Blick auf die CommonJS-Spezifikationen hier)

export und export default gehören zum ES6 Syntax (Nicht sicher über ES6? Schauen Sie sich bitte das ES6-Modul hier an) !

Ebenso gehören import und require zu ES6 bzw. CommonJS!

2. Es gibt noch einen weiteren klaren Punkt, um zu wissen, zu welchem ​​Teil der Grammatik es gehört:

Modul. Exporte und Exporte, Export und Standardexport sind alleExportmodul > und

erforderlich

sind Module importieren. Lassen Sie sich jetzt nicht verwirren, module.exports export entspricht „require import“ und export export entspricht „import import“. Hey! Warten Sie, warum sagen wir, dass „module.exports export“ „require import“ und „export export“ „import import“ entspricht? Dann gibt es noch „exports“ und „export default“? ? Dann machen wir weiter. 3. Der Unterschied und Zusammenhang zwischen module.exports und exports

An dieser Stelle muss ich die Modularität noch ein wenig erwähnen: Knotenanwendungen bestehen aus Modulen und übernehmen die CommonJS-Modulspezifikation. Gemäß dieser Spezifikation ist jede Datei ein Modul und hat ihren eigenen Gültigkeitsbereich. In einer Datei definierte Variablen, Funktionen und Klassen sind privat und für andere Dateien nicht sichtbar. Die CommonJS-Spezifikation legt fest, dass innerhalb jedes Moduls die Variable
das aktuelle Modul darstellt. Diese Variable ist ein Objekt und ihr
-Attribut (d. h.
) ist die externe Schnittstelle. Beim Laden eines Moduls wird tatsächlich das
-Attribut des Moduls geladen.

Der obige Code gibt Variablen

und Funktionen

bis module aus. Zum Laden von Modulen wird die Methode exportsmodule.exportsmodule.exports verwendet.

var x = 5;var addX = function (value) {  return value + x;};module.exports.x = x;module.exports.addX = addX;
Nach dem Login kopieren

Nachdem Sie gerade die Einführung in die CommonJS-Spezifikation gelesen haben, können Sie die folgenden Unterschiede und Zusammenhänge kennen:

Tatsächlich zeigt die Exportvariable auf das Modul .exports, und das Laden des Moduls ist eigentlich das module.exports, das das Modul lädt. Dies entspricht einer Zeile wie dieser am Kopf jedes Moduls. xaddX

So können wir Methoden direkt zum Exportobjekt hinzufügen, um die externe Ausgabeschnittstelle darzustellen, genau wie das Hinzufügen zu module.exports. Beachten Sie, dass Sie die Variable exports nicht direkt auf einen Wert verweisen können, da dies dem Unterbrechen der Verbindung zwischen exports und module.exports gleichkommt.

require

3. Der Unterschied und Zusammenhang zwischen den Modulfunktionen Export

und

Standardexport
var example = require('./example.js');console.log(example.x); // 5console.log(example.addX(1)); // 6
Nach dem Login kopieren

besteht hauptsächlich aus:

und module.exports.

Exportieren Sie die externe Schnittstelle des Moduls, und der Befehl
var exports = module.exports;
Nach dem Login kopieren
importiert die von anderen Modulen bereitgestellten Schnittstellen.

Export unterscheidet sich tatsächlich ein wenig vom Standardexport in der Art und Weise, wie sie geschrieben sind. Zum einen werden einzelne Schnittstellen exportiert, zum anderen wird standardmäßig eine gesamte Schnittstelle exportiert. Bei Verwendung des Befehls

muss der Benutzer den zu ladenden Variablennamen oder Funktionsnamen kennen, andernfalls kann er nicht geladen werden. Hier ist eine einfache Möglichkeit, es zu schreiben, ohne die spezifischen offengelegten Schnittstellennamen zu kennen. Verwenden Sie einfach den Befehl , um die Standardausgabe für das Modul anzugeben. Export kann wie folgt geschrieben werden:

Nachdem der Befehl export zum Definieren der externen Schnittstelle des Moduls verwendet wurde, können andere JS-Dateien dieses Modul über import构成 laden Befehl. exportimport

Exportstandard kann so geschrieben werden

importexport default

Vergleichen wir den Exportstandard und die Exportausgabe.

<code class=" javascript"><span class="token comment">// testA.js<span class="token keyword">var f <span class="token operator">= <span class="token string">&#39;Miel&#39;<span class="token punctuation">;<span class="token keyword">var name <span class="token operator">= <span class="token string">&#39;Jack&#39;<span class="token punctuation">;<span class="token keyword">var data<span class="token operator">= <span class="token number">1988<span class="token punctuation">;

export <span class="token punctuation">{f<span class="token punctuation">, name<span class="token punctuation">, data<span class="token punctuation">}<span class="token punctuation">;<br/></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>
Nach dem Login kopieren
Sie können sehen, dass die erste Gruppe verwendet wird, die Anweisung muss keine geschweiften Klammern verwenden; die zweite Gruppe wird verwendet, die entsprechende Anweisung muss geschweifte Klammern verwenden, ein Modul kann also nur eine Standardausgabe haben kann nur einmal verwendet werden.

exportimport</p>4. Der Unterschied und Zusammenhang zwischen Import und Require<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>&lt;code class=&quot; javascript&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// main.js import &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code class=&quot; javascript&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token operator&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token operator&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token operator&quot;&gt;&lt;span class=&quot;token number&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;f&lt;span class=&quot;token punctuation&quot;&gt;, name&lt;span class=&quot;token punctuation&quot;&gt;, data&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code class=&quot; javascript&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;} from &lt;span class=&quot;token string&quot;&gt;&amp;#39;./testA&amp;#39;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;</pre><div class="contentsignin">Nach dem Login kopieren</div></div><p></p>

<code class=" javascript"><span class="token comment">// export-default.js
export default <span class="token keyword">function <span class="token punctuation">(<span class="token punctuation">) <span class="token punctuation">{
  console<span class="token punctuation">.<span class="token function">log<span class="token punctuation">(<span class="token string">&#39;foo&#39;<span class="token punctuation">)<span class="token punctuation">;<span class="token punctuation">}<br/></span></span></span></span></span></span></span></span></span></span></span></span></code>
Nach dem Login kopieren
// 或者写成function foo() {
  console.log(&#39;foo&#39;);}
export default foo;
Nach dem Login kopieren
Nach dem Lesen ist es tatsächlich klar Die oben genannten , import und require sind nur zwei Syntaxen zum Importieren von Modulen, die zu ES6 bzw. CommonJS gehören.
<code class=" javascript"><span class="token comment">// import-default.js
import customName from <span class="token string">&#39;./export-default&#39;<span class="token punctuation">;<span class="token function">customName<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">;<span class="token comment"> // &#39;foo&#39;<br/><br/></span></span></span></span></span></span></span></span></code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Unterschiede und Zusammenhänge zwischen Export Default, Require and Exports und Export. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

„Das angeforderte Modul stellt keinen Export mit dem Namen bereit' Fehler erscheint in Vue Cli – wie kann man ihn lösen? „Das angeforderte Modul stellt keinen Export mit dem Namen bereit' Fehler erscheint in Vue Cli – wie kann man ihn lösen? Aug 20, 2023 pm 07:25 PM

„Das angeforderte Modul stellt keinen Export mit dem Namen bereit“ In VueCli wird ein Fehler angezeigt – wie kann man ihn beheben? Während der Entwicklung des Vue-Projekts kann es zu der Fehlermeldung „Therequestedmoduledoesnotprovideanexportnamed“ kommen. Diese Fehlermeldung erscheint normalerweise bei der Einführung von Drittanbieterkomponenten

So konfigurieren Sie das Standard-Gateway So konfigurieren Sie das Standard-Gateway Dec 07, 2023 am 11:34 AM

Schritte zum Konfigurieren des Standard-Gateways: 1. Bestimmen Sie die IP-Adresse des Routers. 3. Konfigurieren Sie die Netzwerkverbindung. 5. Geben Sie die IP-Adresse und die Subnetzmaske ein . Konfigurieren Sie das Standard-Gateway ;7. Konfigurieren Sie den DNS-Server. Detaillierte Einführung: 1. Bestimmen Sie die IP-Adresse des Routers. Die IP-Adresse des Routers finden Sie auf der Rückseite des Routers oder im Benutzerhandbuch .

Konfigurieren Sie das Standard-Gateway Konfigurieren Sie das Standard-Gateway Dec 07, 2023 pm 03:02 PM

Schritte zum Konfigurieren des Standard-Gateways: 1. Öffnen Sie das Bedienfeld. 3. Konfigurieren Sie die Netzwerkverbindung. 5. Konfigurieren Sie die DNS-Serveradresse Gerät. Detaillierte Einführung: 1. Öffnen Sie die Systemsteuerung, klicken Sie im Windows-System auf das Startmenü und wählen Sie „Netzwerk und Internet“. Wählen Sie in der Systemsteuerung „Netzwerk und Internet“. usw. .

Der Unterschied zwischen Export und Exportstandard Der Unterschied zwischen Export und Exportstandard Oct 12, 2023 am 10:24 AM

Der Unterschied zwischen export und export default besteht darin, dass das Schlüsselwort export zum Exportieren einer oder mehrerer Variablen, Funktionen oder Klassen verwendet wird, während das Schlüsselwort export default zum Exportieren einer Standardvariablen, -funktion oder -klasse verwendet wird. In anderen Modulen können Sie das Schlüsselwort import verwenden, um diese exportierten Variablen, Funktionen oder Klassen zu importieren.

So konfigurieren Sie das Standard-Gateway So konfigurieren Sie das Standard-Gateway Dec 07, 2023 pm 02:56 PM

Schritte zum Konfigurieren des Standard-Gateways: 1. Verstehen Sie die Netzwerkumgebung. 3. Melden Sie sich bei der Router-Verwaltungsoberfläche an. 5. Konfigurieren Sie das Standard-Gateway. Speichern Sie die Einstellungen und beenden Sie den Vorgang. 7. Überprüfen Sie, ob die Netzwerkverbindung normal ist. Die Konfiguration des Standard-Gateways ist ein wichtiger Schritt bei der Netzwerkeinrichtung. Sie bestimmt, welchen Router der Host für den Zugriff auf das Internet verwendet.

Eine ausführliche Analyse der Standardverwendung von PHP: Wir enthüllen seine Geheimnisse für Sie Eine ausführliche Analyse der Standardverwendung von PHP: Wir enthüllen seine Geheimnisse für Sie Mar 23, 2024 am 08:06 AM

PHP ist eine im Bereich der Webentwicklung weit verbreitete Skriptsprache. Entwickler haben von ihrer Flexibilität und ihren leistungsstarken Funktionen stark profitiert. In PHP ist das Festlegen von Standardwerten ein häufiger Vorgang, und das Standardschlüsselwort spielt eine entscheidende Rolle. In diesem Artikel wird die Verwendung von Standard in PHP eingehend analysiert, seine Geheimnisse für Sie enthüllt und mit spezifischen Codebeispielen kombiniert, um den Lesern ein besseres Verständnis zu ermöglichen. 1. Standardparameterwerte In PHP können wir Standardwerte für die Parameter einer Funktion festlegen, um dies zu verhindern

Enthält das Java-Schlüsselwort „default'? Enthält das Java-Schlüsselwort „default'? Apr 23, 2023 pm 01:13 PM

Ist default ein Java-Schlüsselwort? Antwort: default ist ein Schlüsselwort in Java8, auch „virtualextensionmethods“ genannt. Die chinesische Übersetzung heißt „virtuelle Erweiterungsmethode“ und enthält einige Standardverwendungsmethoden in der Schnittstelle. Wenn die Schnittstelle erweitert wird, kommt es nicht zu Konflikten mit dem Implementierungsklassencode, der sich auf die Schnittstelle bezieht. Einführung in Standard und Java: 1. Die vorherige Schnittstelle war ein zweischneidiges Schwert, das auf Abstraktion, aber nicht auf spezifische Programmierung ausgerichtet sein konnte. 2. Der Nachteil besteht darin, dass Sie beim Ändern der Schnittstelle zunächst alle Klassen ändern müssen, die die Schnittstelle implementieren. 3. Wenn Sie der Schnittstelle keine neuen Methoden hinzufügen können, hat dies keine Auswirkungen auf die vorhandene Anzeige. Daher wird die Standardmethode hinzugefügt, um das Problem für alle zu lösen.

So implementieren Sie MySQLs Standardeinschränkung default und Zero-Fill-Einschränkung Zerofill So implementieren Sie MySQLs Standardeinschränkung default und Zero-Fill-Einschränkung Zerofill May 31, 2023 pm 05:10 PM

Standardeinschränkung Die MySQL-Standardwerteinschränkung wird verwendet, um den Standardwert einer bestimmten Spalte anzugeben. Standardeinschränkungsmethode 1 hinzufügen: Standard; Methode 2: änderbarer Tabellenname, Standardwert für Spaltennamentyp ändern; createtablet_user10(idint,namevarchar(20),addressvarchar(20)default'Beijing'--Standardeinschränkungen angeben); Name Spalte ändern Name Typ Standard Standardwert; createtablet_user11(idint,namevarchar(20),addr

See all articles