javascript / expert
Snippet
Multi-Slot-Array-Iterator-Projektion für Next.js Parallel-Routes
Bei der Verwaltung dynamischer paralleler Routen-Slots in Next.js ermöglichen benutzerdefinierte Sammlungsklassen, die Symbol.iterator implementieren, die nahtlose Konvertierung in Arrays bei gleichzeitiger Flachhaltung geschachtelter Slot-Verzeichnissegmenten.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
export class RouteSlotCollection implements Iterable<string> {constructor(private slots: Map<string, string[]>) {}*[Symbol.iterator](): Iterator<string> {for (const [slotName, paths] of this.slots.entries()) {for (const path of paths) {yield `@${slotName}/${path}`;}}}toFlattenedArray(): string[] {return Array.from(this);}}
nextjs
Erklärung
1
export class RouteSlotCollection implements Iterable<string> {
Deklariert eine objektorientierte Sammlung, die das JavaScript Iterable-Interface für parallele Routensegmente implementiert.
2
constructor(private slots: Map<string, string[]>) {}
Initialisiert privaten Status, der Slot-Namen Listen von Segment-Pfadstrings zuordnet.
3
Leere Leerzeile.
4
*[Symbol.iterator](): Iterator<string> {
Definiert eine benutzerdefinierte Generator-Methode unter dem Symbol.iterator-Schlüssel für native Array-Spread-Syntax.
5
for (const [slotName, paths] of this.slots.entries()) {
Iteriert über Einträge der internen Slot-Map-Struktur.
6
for (const path of paths) {
Verschachtelte Schleife, die jeden einzelnen Pfad durchläuft, der für einen bestimmten Slot gespeichert ist.
7
yield `@${slotName}/${path}`;
Gibt bei Bedarf einen formatierten, mit Präfix versehenen Pfadstring aus.
8
}
Schließt die verschachtelte innere Pfadschleife.
9
}
Schließt die äußere Eintrags-Schleife.
10
}
Schließt die Symbol.iterator-Generator-Methode.
11
Leere Leerzeile.
12
toFlattenedArray(): string[] {
Bietet eine Methode zur expliziten Transformation der Iterator-Ausgabe in ein Standard-Array.
13
return Array.from(this);
Nutzt Array.from zur Erfassung aller Generator-Yields in einem flachen String-Array.
14
}
Schließt die toFlattenedArray-Methode.
15
}
Schließt den Klassenkörper.