es6-Import für die Bedeutung von Nebenwirkungen

Lesezeit: 2 Minuten

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.

Wie kann man HTML in Reaction sicher rendern
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.

es6 Import fur die Bedeutung von Nebenwirkungen
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';

995660cookie-checkes6-Import für die Bedeutung von Nebenwirkungen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy