In diesem Dokument wird beschrieben, wie die Zuordnung des dynamischen Modells zu Komponenten im JavaScript-SPA-SDK für AEM erfolgt.
Das ComponentMapping
-Modul wird dem Frontend-Projekt als NPM-Paket bereitgestellt. Es speichert Frontend-Komponenten und bietet der Single Page Application die Möglichkeit, Frontend-Komponenten AEM-Ressourcentypen zuzuordnen. Das Modul ermöglicht eine dynamische Auflösung von Komponenten beim Analysieren des JSON-Modells der Anwendung.
Jedes im Modell vorhandene Element enthält eine :type
-Feld, das einen AEM Ressourcentyp verfügbar macht. Bei der Implementierung kann sich die Frontend-Komponente mit dem Fragment des Modells, das sie von den zugrunde liegenden Bibliotheken erhalten hat, selbst rendern.
Siehe SPA Blueprint Dokument finden Sie weitere Informationen zum Parsen von Modellen und zum Zugriff der Frontend-Komponenten auf das Modell.
Weitere Informationen finden Sie im npm-Paket: @adobe/aem-spa-component-mapping.
Einzelseiten-Apps, die das JavaScript SPA SDK für AEM verwenden, sind modellgesteuert:
Frontend-Komponenten registrieren sich im Komponentenzuordnungs-Store.
Anschließend durchläuft der Container, sobald ihm ein Modell vom Modellanbieter zur Verfügung gestellt wurde, seinen Modellinhalt (:items
).
Wenn eine Seite vorhanden ist, werden die untergeordneten Elemente (:children
) erhalten Sie zunächst eine Komponentenklasse aus der Komponentenzuordnung und dann instanziieren.
Jede Komponente wird um die Funktionen des ModelProvider
erweitert. Die Initialisierung hat daher folgende allgemeine Form:
Jeder Modellanbieter initialisiert sich selbst und wartet auf Änderungen, die an dem Modell vorgenommen wurden, das seiner inneren Komponente entspricht.
PageModelManager
muss gemäß dem Initialisierungsfluss initialisiert werden.
Nach dem Speichern gibt der Seitenmodell-Manager das vollständige Modell der App zurück.
Dieses Modell wird dann an die Frontend-Stamm-Container-Komponente der App übergeben.
Teile des Modells werden schließlich auf jede einzelne untergeordnete Komponente übertragen.