SPA Inleiding en Analyse spa-introduction
Toepassingen op één pagina (SPA) kunnen aantrekkelijke ervaringen bieden voor websitegebruikers. Ontwikkelaars willen sites kunnen maken met behulp van SPA frameworks en auteurs willen inhoud naadloos bewerken binnen AEM voor een site die is gebouwd met behulp van dergelijke frameworks.
De SPA Editor biedt een uitgebreide oplossing voor het ondersteunen van SPA binnen AEM. Dit artikel doorloopt het gebruiken van een basis SPA toepassing voor creatie en toont hoe het op het onderliggende AEM SPA Redacteur betrekking heeft.
Inleiding introduction
Artikel article-objective
Dit artikel introduceert de basisconcepten van SPA alvorens de lezer door een analyse van de SPA redacteur door een eenvoudige SPA toepassing te gebruiken te leiden om basisinhoud het uitgeven aan te tonen. Vervolgens duikt het neer in de constructie van de pagina en hoe de SPA toepassing zich verhoudt tot en communiceert met de AEM SPA Editor.
Het doel van deze inleiding en analyse is aan een AEM ontwikkelaar te tonen waarom SPA relevant zijn, hoe zij over het algemeen werken, hoe een SPA door de AEM Redacteur wordt behandeld SPA, en hoe het van een standaard AEM toepassing verschillend is.
Vereisten requirements
De analyse is gebaseerd op standaard AEM functionaliteit en de steekproefWKND SPA Project app. Om samen met deze analyse te volgen, moet u het volgende beschikbaar hebben.
-
Laatste ontwikkelings-SDK van AEMaaCS
- Het zou als lokale ontwikkelomgeving moeten lopen.
- U moet beheerdersrechten voor het systeem hebben.
-
de steekproefWKND SPA Project beschikbaar op GitHub
- Download de recentste versie van React appgenoemd gelijkaardig aan
wknd-spa-react.all-X.Y.Z-SNAPSHOT.zip
. - Download de recentste steekproefbeelden voor appgenoemd gelijkaardig aan
wknd-spa-sample-images-X.Y.Z.zip
. - het pakketmanager van het Gebruikom beide pakketten te installeren aangezien u een ander pakket in AEM.
- Voor deze analyse hoeft de app niet te worden geïnstalleerd met Maven.
- Download de recentste versie van React appgenoemd gelijkaardig aan
Wat is een SPA? what-is-a-spa
Een toepassing van één pagina (SPA) verschilt van een conventionele pagina in die zin dat deze op client wordt weergegeven en vooral door JavaScript wordt aangedreven, afhankelijk van Ajax-aanroepen om gegevens te laden en de pagina dynamisch bij te werken. De meeste of alle inhoud wordt één keer opgehaald in één pagina die wordt geladen met extra bronnen die asynchroon worden geladen, afhankelijk van gebruikersinteractie met de pagina.
Hierdoor is het minder nodig pagina's te vernieuwen en wordt de gebruiker een ervaring geboden die naadloos, snel is en meer lijkt op een native app-ervaring.
Met de AEM SPA Editor kunnen front-end ontwikkelaars SPA maken die in een AEM site kunnen worden geïntegreerd, zodat de auteurs van de inhoud de SPA inhoud net zo gemakkelijk kunnen bewerken als elke andere AEM.
Waarom een SPA? why-a-spa
Door sneller, vloeiend en meer als een native toepassing te zijn, wordt een SPA een zeer aantrekkelijke ervaring, niet alleen voor de bezoeker van de webpagina, maar ook voor marketers en ontwikkelaars vanwege de aard van de manier waarop SPA werkt.
Bezoekers visitors
- Bezoekers willen native ervaringen als ze met inhoud werken.
- Er zijn duidelijke gegevens dat hoe sneller een pagina, hoe waarschijnlijker een conversie zal plaatsvinden.
Marketers marketers
- Marketers willen rijke, native ervaringen bieden om bezoekers te dwingen om zich volledig met inhoud bezig te houden.
- Personalization kan deze ervaringen nog aantrekkelijker maken.
Ontwikkelaars developers
- Ontwikkelaars willen een duidelijke scheiding tussen inhoud en presentatie.
- Schone scheiding maakt het systeem meer uitbreidbaar en maakt een onafhankelijke ontwikkeling aan de voorzijde mogelijk.
Hoe werkt een SPA? how-does-a-spa-work
Het primaire idee achter een SPA is dat de vraag aan, en de afhankelijkheid van, een server worden verminderd om vertragingen te minimaliseren die door serverlatentie worden veroorzaakt zodat de SPA de ontvankelijkheid van een inheemse toepassing benadert.
In een traditionele, opeenvolgende webpagina worden alleen de gegevens geladen die nodig zijn voor de directe pagina. Dit betekent dat wanneer de bezoeker naar een andere pagina gaat, de server om de extra bronnen wordt gevraagd. Aanvullende aanroepen kunnen nodig zijn wanneer de bezoeker werkt met elementen op de pagina. Deze veelvoudige vraag kan een gevoel van vertraging of vertraging geven aangezien de pagina met de verzoeken van de bezoeker moet inhalen.
Voor een vloeiendere ervaring, die nadert wat een bezoeker verwacht van mobiele, native apps, laadt een SPA alle benodigde gegevens voor de bezoeker bij de eerste lading. Hoewel dit een beetje langer kan duren, elimineert het dan de behoefte aan extra servervraag.
Door de pagina op de client te renderen, reageren de pagina-elementen sneller en hebben de bezoekers direct interactie met de pagina. Eventuele aanvullende gegevens worden asynchroon aangeroepen om de snelheid van de pagina te maximaliseren.
Ervaring voor het bewerken van inhoud met SPA content-editing-experience-with-spa
Wanneer een SPA is gemaakt om de AEM SPA Editor te gebruiken, merkt de auteur van de inhoud op dat er geen verschil is bij het bewerken en maken van inhoud. Er is algemene AEM beschikbaar en er zijn geen wijzigingen in de workflow van de auteur vereist.
-
Bewerk de WKND SPA Project-app in AEM.
http://localhost:4502/editor.html/content/wknd-spa-react/us/en/home.html
-
Selecteer een tekstcomponent. Een werkbalk ziet er net zo uit als een andere component. Selecteer uitgeven.
-
Bewerk de inhoud als normaal binnen AEM en houd er rekening mee dat de wijzigingen zich blijven voordoen.
uit
-
Met de Assets-browser kunt u een nieuwe afbeelding naar een afbeeldingscomponent slepen en neerzetten.
laten vallen
-
De wijziging wordt doorgevoerd.
Extra ontwerpgereedschappen, zoals het slepen en neerzetten van aanvullende componenten op de pagina, het opnieuw rangschikken van componenten en het wijzigen van de layout, worden ondersteund, net als in elke andere AEM.
Apps en de AEM SPA Editor SPA spa-apps-and-the-aem-spa-editor
Door te ervaren hoe een SPA zich gedraagt voor de gebruiker en vervolgens de SPA pagina te inspecteren, kunt u beter begrijpen hoe een SAP-app werkt met de SPA Editor in AEM.
Een SPA toepassing gebruiken using-an-spa-application
-
Laad de toepassing van het SPA van WKND of op publiceer server of gebruikend de optie Mening zoals Gepubliceerd van het menu van de Informatie van de Pagina in de paginaredacteur.
http://<host>:<port>/content/wknd-spa-react/us/en/home.html
Maak een notitie van de paginastructuur, inclusief navigatie naar onderliggende pagina's, menu's en artikelkaarten.
-
Navigeer naar een onderliggende pagina met behulp van het menu en controleer of de pagina direct wordt geladen zonder dat een pagina moet worden vernieuwd.
-
Open de ingebouwde ontwikkelaarsgereedschappen van uw browser en controleer de netwerkactiviteit terwijl u door de onderliggende pagina's navigeert.
Er is erg weinig verkeer wanneer u van pagina naar pagina gaat in de app. De pagina wordt niet opnieuw geladen en alleen de nieuwe afbeeldingen worden aangevraagd.
De SPA beheert de inhoud en het verpletteren volledig op de cliëntkant.
Dus als de pagina niet opnieuw wordt geladen wanneer u door de onderliggende pagina's navigeert, hoe wordt deze geladen?
De volgende sectie, die een SPA Toepassinglaadt, graaft dieper in de mechanica van het laden van de SPA en hoe de inhoud synchroon en asynchroon kan worden geladen.
Een SPA laden loading-a-spa-application
-
Als niet reeds geladen, laad WKND SPA Project app of op publiceer server of gebruikend de optie Mening zoals Gepubliceerd van het menu van de Informatie van de Pagina in de paginaredacteur.
http://<host>:<port>/content/wknd-spa-react/us/en/home.html
-
Gebruik het ingebouwde gereedschap van uw browser om de bron van de pagina weer te geven.
-
De inhoud van de bron is beperkt.
- De pagina heeft geen inhoud in de hoofdtekst. Het bestaat voornamelijk uit stijlpagina's en een aanroep naar verschillende scripts, zoals
clientlib-react.min.js
. - Deze scripts vormen de belangrijkste stuurprogramma's voor deze toepassing en zijn verantwoordelijk voor het renderen van alle inhoud.
- De pagina heeft geen inhoud in de hoofdtekst. Het bestaat voornamelijk uit stijlpagina's en een aanroep naar verschillende scripts, zoals
-
Gebruik de ingebouwde gereedschappen van uw browser om de pagina te inspecteren. Zie de inhoud van de DOM volledig geladen.
-
Ga naar het tabblad Netwerk in de Inspecteur en laad de pagina opnieuw.
Afbeeldingsverzoeken negeren. De primaire bronnen die voor de pagina worden geladen, zijn de pagina zelf, CSS, de React JavaScript, de afhankelijkheden en JSON-gegevens voor de pagina.
-
Laad de
home.model.json
op een nieuw tabblad.http://<host>:<port>/content/wknd-spa-react/us/en/home.model.json
De AEM SPARedacteur gebruikt AEM de Diensten van de Inhoudom de volledige inhoud van de pagina als model te leveren JSON.
Door specifieke interfaces uit te voeren, verstrekken de Modellen van het Sling de informatie noodzakelijk aan de SPA. De levering van de JSON-gegevens wordt omlaag gedelegeerd aan elke component (van pagina, alinea, component, enzovoort).
Elke component kiest wat het blootstelt en hoe het (server-kant met HTML of cliënt-kant met React of Angular) wordt teruggegeven. Dit artikel richt zich op client-side rendering met React.
-
Het model kan pagina's ook groeperen zodat ze synchroon worden geladen, waardoor het aantal pagina's dat opnieuw moet worden geladen, afneemt.
In het voorbeeld van de WKND SPA Project-app worden de pagina's
home
,page-1
,page-2
enpage-3
synchroon geladen, aangezien bezoekers doorgaans alle pagina's bezoeken.Dit gedrag is niet verplicht en is volledig definieerbaar.
-
Als u dit verschil in gedrag wilt zien, laadt u de pagina
home
opnieuw en wist u de netwerkactiviteit van de inspecteur. Navigeer naarpage-1
in het paginamenu en controleer of de enige netwerkactiviteit een aanvraag is voor de afbeelding vanpage-1
.page-1
zelf hoeft niet te worden geladen.
Interactie met de SPA Editor interaction-with-the-spa-editor
Met behulp van de voorbeeldtoepassing WKND SPA Project is het duidelijk hoe de app zich gedraagt en wordt geladen wanneer deze wordt gepubliceerd, met behulp van inhoudsservices voor het leveren van JSON-inhoud en het asynchroon laden van bronnen.
Voor de auteur van de inhoud is het maken van inhoud met een SPA-editor ook naadloos in AEM.
In de volgende sectie zullen wij het contract onderzoeken dat de SPARedacteur toestaat om componenten binnen de SPA met AEM componenten te verbinden en deze naadloze het uitgeven ervaring te bereiken.
-
Laad de toepassing van het SPA van WKND in de redacteur en schakelaar aan wijze van de Voorproef.
http://<host>:<port>/editor.html/content/wknd-spa-react/us/en/home.html
-
Controleer de inhoud van de pagina met de ingebouwde ontwikkelaarsgereedschappen van uw browser. Selecteer met het selectiegereedschap een bewerkbare component op de pagina en bekijk de details van het element.
De component heeft een nieuw gegevenskenmerk
data-cq-data-path
.Bijvoorbeeld
data-cq-data-path="/content/wknd-spa-react/us/en/home/jcr:content/root/responsivegrid/text
Met dit pad kunt u het contextconfiguratieobject van elke component ophalen en koppelen.
Dit is het enige prijsverhogingsattribuut dat voor de redacteur wordt vereist om dit als editable component binnen de SPA te erkennen. Gebaseerd op dit attribuut, zal de SPA Redacteur bepalen welke editable configuratie met de component wordt geassocieerd, zodat het correcte kader, de toolbar, etc. wordt geladen.
Bepaalde specifieke klassenamen worden ook toegevoegd voor het markeren van plaatsaanduidingen en voor het slepen en neerzetten van elementen.
note note NOTE Dit gedrag verschilt van gerenderde pagina's aan serverzijde in AEM, waar een cq
-element is ingevoegd voor elke bewerkbare component.Deze benadering in de Redacteur van de SPA verwijdert de behoefte om douaneelementen te injecteren, die slechts een extra gegevensattribuut baseren, die de prijsverhoging voor de frontend ontwikkelaar eenvoudiger maken.
Hoofdletters en headless in AEM headful-headless
SPA kunnen worden ingeschakeld met flexibele integratieniveaus binnen AEM, met inbegrip van SPA die buiten AEM zijn ontwikkeld en onderhouden. Ook, kan SPA binnen AEM worden gebruikt terwijl ook het gebruiken van AEM om inhoud aan extra eindpunten zonder oprecht te leveren.
Volgende stappen next-steps
Nu u de SPA het uitgeven ervaring in AEM begrijpt en hoe een SPA op de SPA Redacteur betrekking heeft, neem een diepgaande duik in het begrijpen van hoe een SPA wordt gebouwd.
- Begonnen het Worden met SPA in AEM gebruiken Reageerttoont hoe een basisSPA wordt gebouwd om met de SPA Redacteur in AEM te werken gebruikend Reageren
- Begonnen het Worden met SPA in AEM gebruikend Angulartoont hoe een basisSPA wordt gebouwd om met de SPA Redacteur in AEM te werken gebruikend Angular
- SPA het Overzicht van de Redacteurgaat in meer diepte in het communicatie model tussen AEM en de SPA.
- het ontwikkelen SPA voor AEMbeschrijft hoe te om front-end ontwikkelaars in dienst te nemen om een SPA voor AEM te ontwikkelen en hoe SPA met AEM architectuur in wisselwerking staan.