Ich möchte ein Array der Module erstellen, die ich in die Datei Main.js
importiere. Wie kann ich auf das Objekt zugreifen, das die importierten Module enthält?
BEARBEITEN Zur weiteren Erläuterung importiere ich mehrere Klassen in eine Main.js
- Datei, die eine Hauptklasse enthält. Jede dieser Klassen stammt aus einer eigenen Datei und gibt mir folgende Importanweisungen:
import Header from './features/Header.js';
import ImageStrip from './features/ImageStrip.js';
import AreaChart from './features/AreaChart.js';
import Axes from './features/Axes.js';
Gibt es ein JavaScript-Objekt, das die importierten Module enthält, zum Beispiel [ Header, ImageStrip, AreaChart, Axes ]
? Oder ist es möglich, eine zu erstellen?
3 Antworten
Es gibt keine Datenstruktur, die automatisch mit den Importen der aktuellen Datei gefüllt wird. Sie müssen Ihr eigenes Array oder Objekt erstellen, das jeden Import manuell auflistet.
import Feature1 from './features/Feature1.js';
import Feature2 from './features/Feature2.js';
import {SubFeatureX} from './features/Feature3.js';
const imports = [Feature1, Feature2, {SubFeatureX}];
// or
const imports = {Feature1, Feature2, Feature3: {SubFeatureX}};
Wenn Sie diese Variable in jeder Datei erstellen müssen und Bedenken haben, die Listen manuell zu verwalten, können Sie das Projekt mit Babel kompilieren und könnte ein Babel-Plugin schreiben, um diese Variable oben in jeder Datei für Sie hinzuzufügen.
file.js
export firstFunc() {}
export nextFunc() {}
newFile.js
import * as Obj from "./file.js";
Macht das Sinn?
import {firstMethod, secondMethod} from "./firstFile";
import {anotherFirstMethod} from "./secondFile";
export {
firstMethod,
secondMethod,
anotherFirstMethod
};
Oder
import * as Obj from "./firstFile";
import * as Obj2 from "./secondFile";
export {
Obj,
Obj2
};