SPA Enrutamiento de modelo de spa-model-routing
AEM Para las aplicaciones de una sola página en la, la aplicación es responsable del enrutamiento. Este documento describe el mecanismo de ruta, el contrato y las opciones disponibles.
Enrutamiento de proyectos project-routing
La aplicación es propietaria del enrutamiento y luego la implementan los desarrolladores de front-end del proyecto. AEM Este documento describe la ruta específica del modelo devuelto por el servidor de la. La estructura de datos del modelo de página expone la dirección URL del recurso subyacente. El proyecto front-end puede utilizar cualquier biblioteca personalizada o de terceros que proporcione funcionalidades de enrutamiento. Cuando una ruta espera un fragmento de modelo, se puede realizar una llamada a la función PageModelManager.getData()
. Cuando la ruta de un modelo ha cambiado, se debe activar un evento para advertir a las bibliotecas que escuchan, como el Editor de páginas.
Arquitectura architecture
SPA Para obtener una descripción detallada, consulte la sección PageModelManager del documento de modelo de la página de inicio de la página de la página de inicio de la página de.
ModelRouter modelrouter
ModelRouter
, cuando está habilitado, encapsula las funciones pushState
y replaceState
de la API History de HTML5 para garantizar que un fragmento determinado del modelo se obtenga previamente y sea accesible. A continuación, notifica al componente front-end registrado que el modelo se ha modificado.
Enrutamiento manual frente al automático del modelo manual-vs-automatic-model-routing
ModelRouter
automatiza la captura de fragmentos del modelo. Pero como cualquier herramienta automatizada, viene con limitaciones. SPA Cuando sea necesario, ModelRouter
se puede deshabilitar o configurar para que ignore las rutas mediante metapropiedades (consulte la sección de metapropiedades del documento Componente de página). Los desarrolladores de front-end pueden implementar su propia capa de enrutamiento de modelos solicitando a PageModelManager
que cargue cualquier fragmento de modelo mediante la función getData()
.
ModelRouter
solo admite el uso de direcciones URL que apunten a la ruta de recursos real de los puntos de entrada del modelo Sling. No admite el uso de direcciones URL o alias de vanidad.Contrato de enrutamiento routing-contract
SPA La implementación actual se basa en la suposición de que el proyecto de utiliza la API Historial de HTML5 para el enrutamiento a las diferentes páginas de la aplicación.
Configuración configuration
El ModelRouter
admite el concepto de enrutamiento de modelos a medida que escucha llamadas de pushState
y replaceState
para recuperar previamente fragmentos de modelos. Internamente, déclencheur PageModelManager
para cargar el modelo que corresponde a una URL determinada y activa un evento cq-pagemodel-route-changed
que otros módulos pueden escuchar.
De forma predeterminada, este comportamiento se habilita automáticamente. SPA Para deshabilitarlo, el usuario debe procesar la siguiente propiedad meta:
<meta property="cq:pagemodel_router" content="disabled"\>
SPA AEM Cada ruta de la debe corresponder a un recurso accesible en la ruta de acceso (por ejemplo, "/content/mysite/mypage"
"), ya que PageModelManager
intentará cargar automáticamente el modelo de página correspondiente una vez seleccionada la ruta. SPA Sin embargo, si es necesario, el también puede definir una "lista de bloqueados" de rutas que PageModelManager
debe ignorar:
<meta property="cq:pagemodel_route_filters" content="route/not/found,^(.*)(?:exclude/path)(.*)"/>