2017-05-04 5 views
0

Ich arbeite an einem Projekt, das Fässer verwendet, um Komponenten, Dienstleistungen usw. zu importieren und zu exportieren. Ich verstehe das Konzept und die Verwendung, obwohl es einen Artikel auf Reddit stieß, wo vorgeschlagen wurde, Barrel wurden mit der Einführung von eckigen Modulen ersetzt . Ich verstehe beide Konzepte, aber möglicherweise nicht im Detail, die unterschiedliche Anwendungsfälle für jeden hervorheben würde.Haben eckige Module den Bedarf an Fässern reduziert?

Antwort

0

Ich habe eine Antwort auf meine Frage gefunden, nachdem ich die Angular-Dokumentation und die eckigen Modulfunktionen durchforstet habe.

Fässer werden im Angular-Glossar erklärt, aber es heißt auch, dass "mit angularen Modulen oft das gleiche Ergebnis erzielt werden kann".

Quelle: https://angular.io/docs/ts/latest/glossary.html#!#B

Die Fähigkeit zu ‚exportieren‘ einer Komponente, Richtlinie und/oder Rohr half mir auch das gleiche Ergebnis zu erzielen. Ich hatte vorher kein solides Verständnis dieses Konzepts.

Deklarierbare Klassen exportieren, die Komponenten in anderen Modulen in ihren Vorlagen referenzieren können. Dies sind Ihre öffentlichen Klassen. Wenn Sie eine Klasse nicht exportieren, bleibt sie privat und nur für andere Komponenten sichtbar, die in diesem Modul deklariert sind.

Sie können alle deklarierbaren Klassenkomponenten, Direktiven und Pipes exportieren, unabhängig davon, ob sie in diesem Modul oder in einem importierten Modul deklariert sind.

Sie können ganze importierte Module erneut exportieren, wodurch alle exportierten Klassen effektiv erneut exportiert werden. Ein Modul kann sogar ein Modul exportieren, das nicht importiert wird.

Quelle: https://angular.io/docs/ts/latest/cookbook/ngmodule-faq.html#!#q-what-to-export

Zusammengefasst sieht es aus, als ob die Notwendigkeit für die Fässer mit der Einführung von Angular Module ersetzt wurde. Aber die Verwendung von Fässern kann immer noch angewendet werden.

+0

Module und Fässer sind unterschiedlich, da Sie einen Fass für den Import vieler Module haben können. Ich denke, worüber Sie sprechen, ist die Funktion eines Moduls zum Exportieren von Komponenten und anderen Dingen, die es zuerst importiert, die für jedes andere Modul verfügbar sind, das das Modul importiert, das die Komponente exportiert hat. Es ist der Weg, um mit "Modul über Modul" zu arbeiten. Zum Beispiel importieren Sie childModule, die childComponent exportieren, in Ihr rootModule und Sie können die childComponent im rootModule verwenden. Es wirkt hier wie ein Fass, ist es aber nicht. Das Gefühl von Fass ist "Paket". Sinn von Modulen ist die Kapselung. – Sam

Verwandte Themen