Antworten:
In ES6 sind imports schreibgeschützte Live-Ansichten für exportierte Werte. Infolgedessen import a from "somemodule";können Sie in diesem Fall keine Zuordnung vornehmen, aunabhängig davon, wie Sie dies deklarierena im Modul .
Da es sich bei importierten Variablen jedoch um Live- Ansichten handelt, ändern sie sich beim Export entsprechend der exportierten "rohen" Variablen. Betrachten Sie den folgenden Code (aus dem folgenden Referenzartikel entlehnt):
//------ lib.js ------
export let counter = 3;
export function incCounter() {
counter++;
}
//------ main1.js ------
import { counter, incCounter } from './lib';
// The imported value `counter` is live
console.log(counter); // 3
incCounter();
console.log(counter); // 4
// The imported value can’t be changed
counter++; // TypeError
Wie Sie sehen können, liegt der Unterschied wirklich darin lib.js, nicht main1.js.
Zusammenfassen:
import-ed-Variablen nicht zuweisen , unabhängig davon, wie Sie die entsprechenden Variablen im Modul deklarieren.let-vs- constSemantik gilt für die deklarierte Variable im Modul.
const , kann sie nirgendwo neu zugewiesen oder zurückgebunden werden.let, kann sie nur im Modul neu zugewiesen werden (nicht jedoch im Benutzer). Wenn es geändert wird, importändert sich die Variable -ed entsprechend.
exportKeyword-Details hier . Derzeit wird es von keinem der Webbrowser nativ unterstützt.