Introduzione alla SPA e procedura dettagliata spa-introduction-and-walkthrough

CAUTION
AEM 6.4 ha raggiunto la fine del supporto esteso e questa documentazione non viene più aggiornata. Per maggiori dettagli, consulta la nostra periodi di assistenza tecnica. Trova le versioni supportate qui.

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 framework SPA e gli autori desiderano modificare i contenuti all’interno di AEM per un sito creato utilizzando tali frameworks.

L’editor di SPA offre una soluzione completa per il supporto di SPA in AEM. Questo articolo illustra l’utilizzo di un’applicazione di SPA di base per l’authoring e illustra come si relaziona con l’editor di SPA di AEM sottostante.

NOTE
La funzione Editor applicazioni a pagina singola (SPA) richiede AEM service pack 2 o successivo 6.4.
L’editor di SPA è la soluzione consigliata per i progetti che richiedono SPA rendering lato client basato su framework (ad esempio, React o Angular).

Introduzione introduction

Obiettivo dell’articolo article-objective

Questo articolo introduce i concetti di base delle SPA prima di guidare il lettore attraverso una procedura dettagliata dell’editor di SPA utilizzando una semplice applicazione SPA per illustrare la modifica dei contenuti di base. Viene quindi descritto come creare la pagina e come l’applicazione SPA si relaziona e interagisce con l’editor di SPA di AEM.

L’obiettivo di questa introduzione e di questa procedura dettagliata è dimostrare a uno sviluppatore AEM perché le SPA sono rilevanti, come funzionano in generale, come una SPA viene gestita dall’editor di SPA AEM e come si differenzia da un’applicazione AEM standard.

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

CAUTION
Questo documento utilizza App Journal We.Retail solo a scopo dimostrativo. L’app non deve essere utilizzata per alcun progetto di lavoro.
Qualsiasi progetto AEM deve utilizzare l’archetipo di progetto AEM, che supporta progetti SPA utilizzando React o Angular e sfrutta l’SDK di SPA.

Cos’è una SPA? what-is-a-spa

Un’applicazione a pagina singola (SPA) è diversa da una pagina convenzionale in quanto viene sottoposta a rendering lato client ed è principalmente basata su Javascript, utilizza le chiamate Ajax per caricare i dati e aggiornare dinamicamente la pagina. La maggior parte o tutto il contenuto viene recuperato una volta nel caricamento di una singola pagina con risorse aggiuntive caricate in modo asincrono in base alle esigenze, a seconda dell’interazione dell’utente con la pagina.

Questo riduce la necessità di aggiornare le pagine e offre all’utente un’esperienza caratterizzata da fluidità e rapidità, che si rivela più simile all’esperienza assicurata da un’app nativa.

L’editor AEM di SPA consente agli sviluppatori front-end di creare SPA che possono essere integrate in un sito AEM, permettendo agli autori dei contenuti di modificare il contenuto delle SPA con la stessa facilità con cui sono modificati altri contenuti AEM.

Perché una SPA? why-a-spa

Essendo più veloce, fluida e più simile a un’applicazione nativa, una SPA diventa un’esperienza molto piacevole non solo per il visitatore della pagina web, ma anche per gli esperti di marketing e gli sviluppatori grazie al tipo di funzionamento delle SPA.

screen_shot_2018-08-20at135550

Visitatori

  • I visitatori desiderano esperienze di tipo nativo quando interagiscono con i contenuti.
  • È dimostrato che più veloce sarà una pagina, più probabile sarà una conversione.

Persone addette al marketing

  • Le persone addette al marketing desiderano offrire esperienze avanzate e di tipo nativo per invitare la clientela a interagire pienamente con i contenuti.
  • La personalizzazione può rendere queste esperienze ancora più coinvolgenti.

Sviluppatori

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

Come funziona una SPA? how-does-a-spa-work

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 al server in modo che il SPA si avvicini alla reattività di un'applicazione nativa.

In una pagina web tradizionale sequenziale, vengono caricati solo i dati necessari per la pagina immediata. Questo significa che quando l'utente si sposta su un’altra pagina, il server viene chiamato per le risorse aggiuntive. Potrebbero essere necessarie chiamate aggiuntive mentre il visitatore interagisce con gli elementi della pagina. Queste chiamate multiple possono dare una sensazione di attesa o ritardo in quanto la pagina deve soddisfare le richieste dell'utente.

screen_shot_2018-08-20at140449

Per un’esperienza più fluida, che si avvicina a ciò che un visitatore si aspetta dalle app native per dispositivi mobili, un SPA carica tutti i dati necessari al visitatore al primo caricamento. Anche se l’operazione inizialmente potrebbe richiedere un po’ più di tempo, elimina la necessità di chiamate server aggiuntive.

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

NOTE
Per informazioni tecniche sul funzionamento SPA in AEM, consulta l’articolo Guida introduttiva a SPA in AEM.
Per un’analisi più approfondita della progettazione, dell’architettura e del flusso di lavoro tecnico dell’Editor SPA, consulta l’articolo Panoramica dell’editor di SPA.

Esperienza di modifica dei contenuti con SPA content-editing-experience-with-spa

Quando viene creata una SPA per sfruttare l’Editor SPA AEM, l’autore del contenuto non nota alcuna differenza durante la modifica e la creazione di contenuti. È disponibile una funzionalità AEM comune e non è necessaria alcuna modifica al flusso di lavoro dell’autore.

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

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

    screen_shot_2018-06-07at142533

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

    screen_shot_2018-06-07at142937

  3. Modifica il contenuto come normale in AEM e osserva che le modifiche sono persistenti.

    screen_shot_2018-06-07at143419

    note note
    NOTE
    Consulta la sezione Panoramica dell’editor di SPA per ulteriori informazioni sull'editor di testo e sulle SPA in posizione.
  4. Utilizza il browser Risorse per trascinare una nuova immagine in un componente immagine.

    screen_shot_2018-06-07at143530

  5. La modifica viene mantenuta.

    screen_shot_2018-06-07at143732

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

NOTE
L’editor di SPA non modifica il DOM dell’applicazione. La stessa SPA è responsabile del DOM.
Per vedere come funziona, continua con la sezione successiva di questo articolo App SPA ed editor di SPA AEM.

App SPA ed editor di SPA AEM spa-apps-and-the-aem-spa-editor

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

Utilizzo di un’applicazione SPA using-an-spa-application

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

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

    screen_shot_2018-06-08at102650

    Osserva la struttura delle pagine, inclusa la navigazione verso pagine figlie, widget meteo e articoli.

  2. Passa a una pagina figlia utilizzando il menu e controlla che la pagina venga caricata immediatamente senza la necessità di un aggiornamento.

    screen_shot_2018-06-08at102815

  3. Apri gli strumenti di sviluppo incorporati del browser e monitora l’attività di rete mentre navighi nelle pagine figlie.

    screen_shot_2018-06-08at103922

    C’è molto poco traffico mentre passi da una pagina all’altra nell’app. La pagina non viene ricaricata e vengono richieste solo le nuove immagini.

    La 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 loading-an-spa-application

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

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

    screen_shot_2018-06-07at144736

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

  3. Il contenuto della sorgente è estremamente limitato.

    code language-none
    <!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 corpo. È composto principalmente da fogli di stile e una chiamata a un copione React, we-retail-journal-react.js.

    Questo script React è il driver principale di questa applicazione ed è responsabile del rendering di tutti i contenuti.

  4. Utilizza gli strumenti incorporati del browser per ispezionare la pagina. Visualizza il contenuto del DOM completamente caricato.

    screen_shot_2018-06-07at151848

  5. Passa alla scheda Rete in Ispettore e ricarica la pagina.

    Le richieste di immagini vengono ignorate. Nota che le risorse principali caricate per la pagina sono la pagina stessa, il CSS, il JavaScript di React, le sue dipendenze e i dati JSON per la pagina.

    screen_shot_2018-06-07at152155

  6. Carica il react.model.json in una nuova scheda.

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

    screen_shot_2018-06-07at152636

    L’editor SPA AEM sfrutta AEM Content Services per distribuire l’intero contenuto della pagina come un modello JSON.

    Implementando interfacce specifiche, i modelli Sling forniscono le informazioni necessarie alla SPA. La distribuzione dei dati JSON viene delegata verso il basso per ciascun componente (dalla pagina, al paragrafo, al componente, ecc.).

    Ogni componente sceglie ciò che espone e come viene riprodotto (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 ricaricamenti di pagina necessari.

    Nell'esempio di We.Retail Journal, il home, bloge aboutus le pagine vengono caricate in modo sincrono, in quanto i visitatori visitano solitamente tutte le pagine. Tuttavia, weather La pagina viene caricata in modo asincrono, in quanto 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 dell’ispettore. Accedi al blog e alle nostre pagine nel menu della pagina e scopri che non è stata segnalata alcuna attività di rete.

    Passa alla pagina del meteo e osserva come weather.model.json viene chiamato in modo asincrono.

    screen_shot_2018-06-07at155738

Interazione con l’editor SPA interaction-with-the-spa-editor

Utilizzando l’applicazione di esempio We.Retail Journal, è chiaro come funziona l’app e come 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 dei contenuti, la creazione di contenuti tramite un editor SPA è semplice all’interno di AEM.

Nella sezione seguente esploreremo il contratto che consente all’editor di SPA di relazionare i componenti all’interno della SPA con i componenti AEM e ottenere questa esperienza di editing perfetta.

  1. Carica l'applicazione We.Retail Journal nell'editor e passa a Anteprima modalità.

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

  2. Utilizzando gli strumenti di sviluppo incorporati nel browser, esaminare il contenuto della pagina. Con lo strumento di selezione, selezionare un componente modificabile nella pagina e visualizzare i dettagli dell’elemento.

    Tieni presente che il componente ha un nuovo attributo dati data-cq-data-path.

    screen_shot_2018-06-08at095124

    Per 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 necessario affinché l’editor riconosca questo come componente modificabile all’interno della SPA. In base a questo attributo, l’editor di SPA determinerà quale configurazione modificabile è associata al componente in modo che il corretto frame, la corretta barra degli strumenti ecc. siano caricati.

    Vengono inoltre aggiunti alcuni nomi di classe specifici per contrassegnare i segnaposto e per la funzionalità di trascinamento della risorsa.

    note note
    NOTE
    Questo è un cambiamento nel comportamento delle pagine di cui è stato eseguito il rendering lato server in AEM, dove è presente un cq per ogni 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 front-end.

Passaggi successivi next-steps

Ora che è chiara l’esperienza di modifica SPA in AEM e come una SPA si relaziona con l’editor di SPA, approfondisci ulteriormente il modo in cui viene creata una SPA.

recommendation-more-help
2315f3f5-cb4a-4530-9999-30c8319c520e