Vous consultez actuellement l'aide de la version:
Les applications d’une seule page (SPA) peuvent améliorer considérablement l’expérience des utilisateurs de sites web. Le souhait des développeurs est de pouvoir créer des sites avec des structures SPA. Les auteurs, pour leur part, souhaitent modifier facilement du contenu dans AEM pour un site conçu à l’aide de telles structures.
L’éditeur de SPA constitue une solution complète pour la prise en charge des SPA dans AEM. Cette page fournit un aperçu de la structure de la prise en charge des SPA dans AEM, du fonctionnement de l’éditeur de SPA et de la synchronisation entre la structure SPA et AEM.
Attention :
La fonction d’éditeur d’application d’une seule page (SPA) a été introduite dans AEM 6.4 et constitue actuellement un aperçu technologique. L’éditeur de SPA sera livré séparément du QuickStart AEM dans un Service Pack à venir pour AEM 6.3 et 6.4.
- Cette fonction est en cours de développement, et la documentation est sujette à modification.
- L’éditeur de SPA est la solution recommandée pour les projets nécessitant un rendu côté client basé sur la structure SPA (par exemple, React).
Les sites créés à l’aide de structures SPA courantes, telles que React et AngularJS, chargent leur contenu via le format JSON dynamique et ne fournissent pas la structure HTML dont l’éditeur de page AEM a besoin pour passer des commandes de modification.
Pour activer la modification d’applications d’une seule page dans AEM, il faut qu’il y ait une correspondance entre la sortie JSON de l’application et le modèle de contenu dans le répertoire AEM afin d’enregistrer les modifications apportées au contenu.
La prise en charge des applications d’une seule page dans AEM s’accompagne d’une fine couche JS qui interagit avec le code JS de l’application lorsqu’elle est chargée dans l’éditeur de pages avec lequel des événements peuvent être envoyés. L’emplacement des commandes d’édition peut être activé pour permettre une modification en contexte. Cette fonction repose sur le concept de point de terminaison de l’API Content Services, étant donné que le contenu de l’application d’une seule page doit être chargé par le biais de Content Services.
Pour de plus amples informations sur les SPA dans AEM, consultez les documents suivants :
- Plan directeur de SPA pour connaître les exigences techniques d’une SPA
- Prise en main des SPA dans AEM pour une présentation rapide d’une SPA simple
Le composant de page d’une application d’une seule page ne fournit pas les composants HTML de ses composants enfants via le fichier HTL ou JSP. Cette opération est déléguée à la structure SPA. La représentation des composants enfants est récupérée en tant que structure de données JSON. Les composants SPA sont ensuite ajoutés à la page en fonction de cette structure. Ce comportement permet de différencier la composition initiale du corps du composant de page à partir d’équivalents non SPA.
La résolution et la gestion du modèle de page sont déléguées à une bibliothèque Pageapplication d’une seule page fournie à cet effet. L’application d’une seule page doit utiliser la bibliothèque modèle de page pour pouvoir être initialisée et créée par l’éditeur de pages. La bibliothèque de modèle de page est fournie indirectement au composant de page AEM via le npm cq-react-editable-components. Le modèle de page est un interpréteur entre AEM et l’application d’une seule page. Par conséquent, elle doit toujours être présente. Lorsque la page est créée, une bibliothèque supplémentaire cq.authoring.pagemodel.messaging doit être ajoutée afin de permettre la communication avec l’éditeur de page.
Si le composant de page SPA hérite du composant principal de la page, deux options sont possibles pour faire en sorte que la catégorie de la bibliothèque cliente cq.authoring.pagemodel.messaging soit disponible :
- Si le modèle est modifiable, ajoutez-le à la stratégie de page.
- Vous pouvez également ajouter les catégories via customfooterlibs.html.
Attention :
L’inclusion de la catégorie cq.authoring.pageapplication d’une seule page.messaging doit être limitée au contexte de l’éditeur de page.
Lorsque la catégorie cq.authoring.pageapplication d’une seule page.messaging est ajoutée à la page, elle envoie un message à l’éditeur de page afin de créer un type de données de communication JSON. Lorsque le type de données de communication est défini sur JSON, les requêtes GET communiquent avec les points de terminaison du modèle Sling d’un composant. À la suite d’une mise à jour dans l’éditeur de page, la représentation JSON du composant mis à jour est envoyée à la bibliothèque modèle de page. Celle-ci informe ensuite l’application d’une seule page des mises à jour.
Pour vous représenter l’architecture de l’interaction entre l’application d’une seule page et AEM, vous pouvez considérer l’éditeur de page comme un intermédiaire entre les deux.
- La communication s’effectue au format JSON au lieu du format HTML.
- L’éditeur de page fournit la dernière version du modèle de page à l’application d’une seule page par le biais de l’API de messagerie et de l’iFrame.
- Le gestionnaire de modèles de pages informe l’éditeur qu’il est prêt pour le montage et transmet le modèle de page sous la forme d’une structure JSON.
- L’éditeur ne modifie pas la structure DOM de la page en cours de création ; en fait, il n’y accède même pas. Au lieu de cela, il fournit le modèle de page le plus récent.


Pour permettre à l’auteur d’utiliser l’éditeur de page afin de modifier le contenu d’une SPA, votre application SPA doit satisfaire les conditions du plan directeur de SPA.