Introduzione SPA e Procedura dettagliata

Le applicazioni a pagina singola (SPA) possono offrire esperienze coinvolgenti agli utenti di siti Web. Gli sviluppatori desiderano essere in grado di creare siti utilizzando SPA framework e gli autori desiderano modificare i contenuti all'interno di AEM per un sito creato utilizzando tali framework.

SPA Editor offre una soluzione completa per SPA di supporto in AEM. Questo articolo descrive l’utilizzo di un’applicazione SPA di base per l’authoring e mostra come si collega all’editor SPA AEM sottostante.

NOTA

La funzione Editor applicazione (SPA) a pagina singola richiede AEM service pack 2 6.4 o successivo.

SPA Editor è la soluzione consigliata per i progetti che richiedono SPA rendering lato client basato su framework (ad es. React o Angular).

Introduzione

Articolo Obiettivo

In questo articolo vengono introdotti i concetti di base di SPA prima di guidare il lettore attraverso una procedura dettagliata dell'editor SPA, utilizzando una semplice applicazione SPA per illustrare la modifica di base dei contenuti. Viene quindi descritto come creare la pagina e come l’applicazione SPA si collega e interagisce con l’editor SPA AEM.

L'obiettivo di questa introduzione e di questa procedura dettagliata è dimostrare a uno sviluppatore AEM perché SPA rilevanti, come funzionano in generale, come un SPA viene gestito dall'Editor SPA AEM e come è diverso da un'applicazione AEM standard.

La procedura dettagliata si basa sulla funzionalità standard AEM e sull'app di esempio We.Retail Journal. Devono essere soddisfatti i seguenti requisiti:

ATTENZIONE

Questo documento utilizza l'app We.Retail Journal solo a scopo dimostrativo. Non deve essere utilizzato per nessun progetto.

Qualsiasi progetto AEM deve sfruttare il AEM Project Archetype, che supporta SPA progetti utilizzando React o Angular e sfrutta l'SDK SPA.

Cos'è un SPA?

Un’applicazione a pagina singola (SPA) è diversa da una pagina tradizionale in quanto viene sottoposta a rendering sul lato client ed è principalmente guidata da Javascript, basandosi sulle chiamate Ajax per caricare i dati e aggiornare dinamicamente la pagina. La maggior parte o tutto il contenuto viene recuperato una volta in un singolo caricamento di pagina con risorse aggiuntive caricate in modo asincrono in base alle esigenze, in base all'interazione dell'utente con la pagina.

Questo riduce la necessità di aggiornare le pagine e offre all'utente un'esperienza semplice, rapida e più simile a un'esperienza app nativa.

AEM SPA Editor consente agli sviluppatori front-end di creare SPA che possono essere integrati in un sito AEM, consentendo agli autori dei contenuti di modificare i contenuti SPA con la stessa facilità con cui si trovano altri contenuti AEM.

Perché un SPA?

Essendo più veloce, fluido e simile a un'applicazione nativa, un SPA diventa un'esperienza molto interessante non solo per il visitatore della pagina Web, ma anche per gli esperti di marketing e gli sviluppatori a causa della natura del funzionamento SPA.

screen_shot_2018-08-20at135550

Visitatori

  • I visitatori desiderano esperienze simili a quelle native quando interagiscono con i contenuti.
  • Esistono dati chiari che più veloce sarà una pagina, più probabile sarà una conversione.

Marketing

  • Gli esperti di marketing desiderano offrire esperienze ricche e native per consentire ai visitatori di interagire pienamente con i contenuti.
  • La personalizzazione può rendere queste esperienze ancora più coinvolgenti.

Sviluppatori

  • Gli sviluppatori desiderano una netta separazione tra contenuti e presentazioni.
  • La separazione pulita rende il sistema più estensibile e consente uno sviluppo front-end indipendente.

Come funziona un SPA?

L'idea principale alla base di un SPA è che le chiamate e la dipendenza da un server vengono ridotte al fine di ridurre al minimo i ritardi causati dalle chiamate server in modo che il SPA si avvicini alla reattività di un'applicazione nativa.

In una pagina Web sequenziale tradizionale, vengono caricati solo i dati necessari per la pagina immediata. Questo significa che quando il visitatore si sposta in un’altra pagina, il server viene chiamato per le risorse aggiuntive. Potrebbero essere necessarie ulteriori chiamate quando il visitatore interagisce con gli elementi sulla pagina. Queste chiamate multiple possono dare un senso di ritardo o ritardo, in quanto la pagina deve essere in grado di soddisfare le richieste del visitatore.

screen_shot_2018-08-20at140449

Per un'esperienza più fluida, che si avvicina alle aspettative di un visitatore dalle app mobili e native, un SPA carica tutti i dati necessari per il visitatore al primo caricamento. Anche se inizialmente l'operazione potrebbe richiedere un po' più di tempo, elimina la necessità di ulteriori chiamate server.

Rendering sul lato client, l’elemento di pagina reagisce più rapidamente e le interazioni con la pagina da parte del visitatore sono immediate. Eventuali dati aggiuntivi che potrebbero essere necessari vengono denominati in modo asincrono per massimizzare la velocità della pagina.

NOTA

Per informazioni tecniche sul funzionamento SPA in AEM, vedere l'articolo Guida introduttiva a SPA in AEM.

Per un'occhiata più dettagliata alla progettazione, all'architettura e al flusso di lavoro tecnico dell'Editor SPA, consultate l'articolo SPA Panoramica dell'Editor.

Esperienza di modifica dei contenuti con SPA

Quando un SPA è creato per sfruttare l'editor SPA AEM, l'autore del contenuto non nota alcuna differenza quando si modifica e si crea contenuto. È disponibile una funzionalità AEM comune e non sono necessarie modifiche al flusso di lavoro dell’autore.

NOTA

La procedura dettagliata si basa sulla funzionalità standard AEM e sull'app di esempio We.Retail Journal. Devono essere soddisfatti i seguenti requisiti:

  1. Modificate l'app We.Retail Journal in AEM.

    http://localhost:4502/editor.html/content/we-retail-journal/react.html

    screen_shot_2018-06-07at142533

  2. Selezionate un componente di intestazione e osservate che la barra degli strumenti è simile a quella di qualsiasi altro componente. Seleziona Modifica.

    screen_shot_2018-06-07at142937

  3. Modificate il contenuto come normale all’interno AEM e tenete presente che le modifiche sono persistenti.

    screen_shot_2018-06-07at143419

    NOTA

    Per ulteriori informazioni sull'editor di testo e sui SPA, vedere la sezione Panoramica sull'editor SPA.

  4. Usate il Browser risorse per trascinare una nuova immagine in un componente immagine.

    screen_shot_2018-06-07at143530

  5. La modifica è persistente.

    screen_shot_2018-06-07at143732

Sono supportati ulteriori strumenti di authoring, come il trascinamento di componenti aggiuntivi sulla pagina, la ridisposizione dei componenti e la modifica del layout, come in qualsiasi applicazione non SPA.

NOTA

L'Editor SPA non modifica il DOM dell'applicazione. Il SPA stesso è responsabile del DOM.

Per vedere come funziona, andate alla sezione successiva di questo articolo SPA App e all'editor SPA AEM.

SPA App e l'editor SPA AEM

L'esperienza di come un SPA si comporta per l'utente finale e quindi l'analisi della pagina SPA aiuta a comprendere meglio come funziona un'app SAP con l'Editor SPA in AEM.

Utilizzo di un'applicazione SPA

  1. Caricate l'applicazione We.Retail Journal sul server di pubblicazione o utilizzando l'opzione Visualizza come pubblicato dal menu Informazioni pagina nell'editor pagina.

    /content/we-retail-journal/react.html

    screen_shot_2018-06-08at102650

    Prendete nota della struttura delle pagine, inclusa la navigazione verso pagine figlie, widget meteo e articoli.

  2. Passa a una pagina figlia utilizzando il menu e verifica che la pagina venga caricata immediatamente senza che sia necessario effettuare un aggiornamento.

    screen_shot_2018-06-08at102815

  3. Aprite gli strumenti di sviluppo integrati del browser e monitorate l'attività di rete mentre vi spostate nelle pagine figlie.

    screen_shot_2018-06-08at103922

    Il traffico si riduce notevolmente quando si passa da una pagina all'altra nell'app. La pagina non viene ricaricata e vengono richieste solo le nuove immagini.

    Il SPA gestisce il contenuto e il routing interamente sul lato client.

Quindi, se la pagina non viene ricaricata durante la navigazione tra le pagine figlie, come viene caricata?

La sezione successiva, Caricamento di un'applicazione SPA, approfondisce la procedura di caricamento del SPA e spiega come caricare il contenuto in modo sincrono e asincrono.

Caricamento di un'applicazione SPA

  1. Se non è già stato caricato, caricate l'applicazione We.Retail Journal sul server di pubblicazione o utilizzando l'opzione Visualizza come pubblicato dal menu Informazioni pagina nell'editor pagina.

    /content/we-retail-journal/react.html

    screen_shot_2018-06-07at144736

  2. Utilizzate lo strumento incorporato del browser per visualizzare l’origine della pagina.

  3. Il contenuto dell'origine è estremamente limitato.

    <!DOCTYPE HTML>
    <html lang="en-CH">
        <head>
        <meta charset="UTF-8">
        <title>We.Retail Journal</title>
    
        <meta name="template" content="we-retail-react-template"/>
    
    <link rel="stylesheet" href="/etc.clientlibs/we-retail-journal/react/clientlibs/we-retail-journal-react.css" type="text/css">
    
    <link rel="stylesheet" href="/libs/wcm/foundation/components/page/responsive.css" type="text/css">
    
    </head>
        <body class="page basicpage">
    
    <div id="page"></div>
    
    <script type="text/javascript" src="/etc.clientlibs/we-retail-journal/react/clientlibs/we-retail-journal-react.js"></script>
    
        </body>
    </html>
    

    La pagina non ha alcun contenuto all’interno del suo corpo. È costituito principalmente da fogli di stile e da una chiamata a uno script React, we-retail-journal-react.js.

    Questo script React è il driver principale di questa applicazione ed è responsabile del rendering di tutto il contenuto.

  4. Utilizzate gli strumenti integrati del browser per ispezionare la pagina. Visualizzare il contenuto del DOM completamente caricato.

    screen_shot_2018-06-07at151848

  5. Passate alla scheda Rete in Ispettore e ricaricate la pagina.

    Ignorando le richieste di immagini, tenete presente che le risorse principali caricate per la pagina sono la pagina stessa, CSS, il JavaScript React, le sue dipendenze e i dati JSON per la pagina.

    screen_shot_2018-06-07at152155

  6. Caricate la react.model.json in una nuova scheda.

    /content/we-retail-journal/react.model.json

    screen_shot_2018-06-07at152636

    L'editor SPA AEM utilizza AEM Content Services per distribuire l'intero contenuto della pagina come modello JSON.

    Implementando interfacce specifiche, Sling Models fornisce le informazioni necessarie al SPA. La consegna dei dati JSON viene delegata verso il basso a ciascun componente (dalla pagina al paragrafo, al componente, ecc.).

    Ciascun componente sceglie le funzioni esposte e di rendering (lato server con HTL o lato client con React). Naturalmente questo articolo si concentra sul rendering lato client con React.

  7. Il modello può anche raggruppare le pagine in modo che vengano caricate in modo sincrono, riducendo il numero di ricariche di pagina necessarie.

    Nell'esempio di We.Retail Journal, le pagine home, blog e aboutus vengono caricate in modo sincrono, dal momento che i visitatori visitano comunemente tutte queste pagine. Tuttavia, la pagina weather viene caricata in modo asincrono, poiché i visitatori hanno meno probabilità di visitarla.

    Questo comportamento non è obbligatorio ed è completamente definibile.

    screen_shot_2018-06-07at153945

  8. Per visualizzare questa differenza di comportamento, ricaricare la pagina e cancellare l'attività di rete della finestra di ispezione. Nel menu della pagina, andate al blog e alle pagine su di noi e scoprite che non è stata segnalata alcuna attività di rete.

    Passate alla pagina meteo e verificate che la weather.model.json sia denominata in modo asincrono.

    screen_shot_2018-06-07at155738

Interazione con l'editor SPA

Utilizzando l'applicazione di esempio We.Retail Journal, è chiaro come l'app si comporta e viene caricata quando viene pubblicata, sfruttando i servizi di contenuto per la distribuzione dei contenuti JSON e il caricamento asincrono delle risorse.

Inoltre, per l'autore del contenuto, la creazione di contenuto tramite un editor SPA è perfettamente all'interno di AEM.

Nella sezione seguente verrà illustrato il contratto che consente all’editor SPA di correlare i componenti all’interno del SPA a AEM componenti e di ottenere questa esperienza di modifica senza soluzione di continuità.

  1. Caricate l'applicazione We.Retail Journal nell'editor e passate alla modalità Preview.

    http://localhost:4502/editor.html/content/we-retail-journal/react.html

  2. Utilizzando gli strumenti di sviluppo incorporati del browser, controllate il contenuto della pagina. Con lo strumento selezione, selezionate un componente modificabile sulla pagina e visualizzate il dettaglio dell’elemento.

    Il componente ha un nuovo attributo di dati data-cq-data-path.

    screen_shot_2018-06-08at095124

    Esempio

    data-cq-data-path="root/responsivegrid/paragraph_1

    Questi percorsi consentono il recupero e l'associazione dell'oggetto di configurazione del contesto di modifica di ciascun componente.

    Questo è l'unico attributo di markup richiesto all'editor per riconoscere questo come componente modificabile all'interno del SPA. In base a questo attributo, l’Editor SPA determinerà quale configurazione modificabile è associata al componente, in modo che il frame, la barra degli strumenti e così via siano corretti. è caricato.

    Alcuni nomi di classe specifici vengono aggiunti anche per i segnaposto di marketing e per la funzionalità di trascinamento della risorsa.

    NOTA

    Si tratta di una modifica nel comportamento delle pagine sottoposte a rendering sul lato server in AEM, dove è inserito un elemento cq per ciascun componente modificabile.

    Questo approccio in SPA elimina la necessità di inserire elementi personalizzati, basandosi solo su un attributo di dati aggiuntivo, semplificando il markup per lo sviluppatore frontend.

Passaggi successivi

Ora che avete compreso l'esperienza di modifica SPA in AEM e come un SPA si collega all'Editor SPA, approfondisci la conoscenza di come un SPA è costruito.

  • Guida introduttiva alle SPA in AEMmostra come viene creata una SPA di base per l’utilizzo dell’Editor SPA in AEM
  • SPA Editor Overviewfinder approfondisce il modello di comunicazione tra AEM e SPA.
  • Lo sviluppo di SPA per AEM descrive come coinvolgere gli sviluppatori front-end nello sviluppo di un SPA per AEM e come SPA interagire con AEM architettura.

In questa pagina