Ich habe die es6-Importanweisung gelesen Referenz auf MDN. Die Syntax:
import "my-module";
importiert ein ganzes Modul nur für Nebeneffekte, ohne Bindungen zu importieren. Ich bin mir nicht sicher, was Nebenwirkungen bedeuten. Ich habe mit verwendet eckig indem man sagt import "angular"
. Angular bindet an das Fenster, gibt aber kein Objekt zurück. Ich bin mir also nicht sicher, ob dies genau als Nebenwirkung bezeichnet werden würde.

Ori Drori
Wenn Sie etwas importieren müssen, das nichts exportiert, aber etwas anderes tut, ist dies nur ein Nebeneffektmodul. Sie importieren es nur, um es zu initialisieren.
Reine und nicht reine Module
Wenn Sie Module als Funktionen betrachten, ist ein Modul, das nur den Gültigkeitsbereich beeinflusst, indem es seinen Inhalt exportiert, wie eine Funktion, die immer dasselbe zurückgibt (eine reine Funktion ohne Parameter). Egal wie oft Sie React 15.01 importieren, Sie erhalten immer ein Objekt, das dieselben Methoden enthält.
Ein Modul mit Nebeneffekten ändert den Umfang auf andere Weise als etwas zurückzugeben, und seine Auswirkungen sind nicht immer vorhersehbar und können durch äußere Kräfte beeinflusst werden (keine reine Funktion). Eine Polyfüllung zum Beispiel kann nichts bewirken, weil sie feststellt, dass die Funktion, die sie aktiviert, bereits vom Browser unterstützt wird.
Beispiele für Nebenwirkungen:
- Angular bindet an das Global
window
Objekt, exportiert aber nichts.
- Eine Polyfüllung, die ES6-Funktionen in den Browsern aktiviert, die sie nicht unterstützen, wie z babel polyfill ist eine Nebenwirkung.
- Viele jQuery-Plug-ins hängen sich an das globale jQuery-Objekt an.
- Analysemodule, die im Hintergrund ausgeführt werden, die Benutzerinteraktionen überwachen und die Daten an einen Server senden.
- Das Importieren von CSS in Webpack kann als Nebeneffekt angesehen werden, wenn Sie keine CSS-Module verwenden.

Derek
Hier ist ein Beispiel:
//a.js
function print1()
{
console.log("export print1 is working");
}
function print2()
{
console.log("non-export print2 is working");
}
print1();
print2();
//b.js
import "a.js";
Wenn Sie “b.js” ausführen, sehen Sie die gedruckten Nachrichten, die aufgerufen werden side effects
.
Betrachten Sie Unten als Beispielcode. Wenn Sie versuchen, etwas zu importieren, würde es nichts exportieren, aber viele Dinge tun und Ihren vorhandenen Code überschreiben (falls vorhanden), das ist also der Nebeneffekt.
import Ember from 'ember';
Ember.RSVP.configure('onerror', function(error) {
....
});
app.js:
import './overrides/extra';
9956600cookie-checkes6-Import für die Bedeutung von Nebenwirkungenyes