Ich habe mit der Entwicklung einer neuen Angular 2-Anwendung begonnen und versuche, dem offiziellen Angular 2-Style-Guide zu folgen. Der Großteil meiner Bewerbung besteht aus einer Reihe von Modulen (ca. 10 davon), die nichts voneinander wissen. Als Ergebnis kann ich faules Laden verwenden und auf diese Module über den Angular 2 Router zugreifen.Verwechslung mit der Verzeichnisstruktur von Angular 2, wenn fast alle Komponenten gemeinsam genutzt werden
|- app
| |- +module1
| | |- module1-list
| | | |- module1-list.component.html
| | | |- module1-list.component.ts
| | |- module1-view
| | | |- module1-view.component.html
| | | |- module1-view.component.ts
| | |- shared
| | | |- module1.model.ts
| | | |- module1.service.ts
| | |- module1-container.component.html
| | |- module1-container.component.ts
| |- +module2
| | |- <same structure with module1>
im obigen Diagramm, das moduleX-container.component
Komponente ist die Seite der Router verweist. Alle anderen Komponenten von moduleX
sind daran angeschlossen.
Es gibt jedoch einige Anwendungsmodule, foo
und bar
, die Komponenten aus allen anderen Modulen verwenden müssen. Gemäß dem offiziellen Angular 2 Style Guide müssen geteilte Komponenten unter dem Ordner shared
platziert werden. Als Ergebnis wird meine Verzeichnisstruktur wie folgt aus:
|- app
| |- +foo (this makes use of all the components under /app/shared/)
| | |- foo-container.component.html
| | |- foo-container.component.ts
| |- +bar (this makes use of all the components under /app/shared/)
| | |- bar-container.component.html
| | |- bar-container.component.ts
| |- +module1
| | |- module1-container.component.html
| | |- module1-container.component.ts
| |- +module2
| | |- module2-container.component.html
| | |- module2-container.component.ts
| |- shared
| | |- module1
| | | |- module1-list
| | | | |- module1-list.component.html
| | | | |- module1-list.component.ts
| | | |- module1-view
| | | | |- module1-view.component.html
| | | | |- module1-view.component.ts
| | | |- shared
| | | | |- module1.model.ts
| | | | |- module1.service.ts
| | |- module2
| | | |- <same structure with module1>
Wie Sie sehen können, jetzt fast alle meine Code unter dem shared
Ordner abgelegt wird. Die Lazy Loaded-Komponenten (die mit +
gestartet wurden) im App-Ordner enthielten nur das Drahtgitter für Seiten, die auf gemeinsam genutzte Komponenten zugreifen. Ist das eine gute Struktur? Es sieht so aus, als ob es mit dem offiziellen Angular 2 Style Guide kompatibel ist, aber gleichzeitig fühlt es sich irgendwie merkwürdig an, dass ich 95% meines Codes unter dem shared
Ordner habe.
EDIT 1:
Auch würde Ich mag module1-view.component
module1-list.component
und geladen, indem (unter oder verschachtelt) werden träge und nicht-loaded lazy Komponenten. Als Ergebnis scheint in meinem ersten Verzeichnisstrukturansatz module1-view.component
und module1-list.component
unter einer Lazy-loaded Elternkomponente (+module1
) falsch zu sein.
Was denkst du? Ist das tatsächlich kompatibel oder habe ich etwas im Style Guide falsch gelesen?
Vielen Dank im Voraus.
Danke für die schnelle Antwort mein Freund! Ich verstehe deinen Standpunkt, aber ich bin immer noch ein bisschen verwirrt. Nach einigen Änderungen an meiner ersten Frage: 'module1-list.component' und' module1-view.component' sind beide verschachtelt/verwendet unter/in 'foo-container.component' und' bar-container.component' Komponenten. Außerdem ist 'module1-container.component' eine Lazy-Loaded-Komponente (also das' + 'im Ordnernamen), weil sie über den Router geladen wird. Die 'module1-list.component' sollte jedoch in der Lage sein, sowohl von lazy als auch von nicht lazy geladenen Komponenten zu laden; Daher fühlt es sich irgendwie falsch an, unter einem Lazy Loaded-Ordner zu sein. – AstrOne