Dynamische routes en bewerkbare componenten
In dit hoofdstuk, laten wij twee dynamische routes van het Detail van het avontuur toe om editable componenten te steunen; Bali Surf Camp en Beervana in Portland.
De route van het Detail van het avontuur SPA wordt bepaald als /adventure/:slug
waar slug
een unieke herkenningstekenbezit op het Fragment van de Inhoud van het Avontuur is.
De SPA URL's toewijzen aan AEM pagina's
In de vorige twee hoofdstukken hebben we bewerkbare componentinhoud vanuit de SPA Home-weergave toegewezen aan de corresponderende Remote SPA hoofdpagina in AEM op /content/wknd-app/us/en/
.
Het bepalen van afbeelding voor editable componenten voor de SPA dynamische routes is gelijkaardig maar wij moeten omhoog 1:1 toewijzingsschema tussen instanties van de route en AEM pagina's komen.
In deze zelfstudie nemen we de naam van het WKND Adventure Content Fragment, het laatste segment van het pad, en wijzen we het toe aan een eenvoudig pad onder /content/wknd-app/us/en/adventure
.
Op basis van deze afbeelding moeten we dus twee nieuwe AEM maken op:
/content/wknd-app/us/en/home/adventure/bali-surf-camp
/content/wknd-app/us/en/home/adventure/beervana-in-portland
Externe SPA
De afbeelding voor verzoeken die de Verre SPA verlaten wordt gevormd via de setupProxy
configuratie die in wordt gedaan Bootstrap de SPA.
Toewijzing SPA Editor
De afbeelding voor SPA verzoeken wanneer de SPA via AEM SPA Redacteur wordt geopend wordt gevormd via het Verdelen configuratie van Toewijzingen die in wordt gedaan vormt AEM.
Inhoudspagina's maken in AEM
Maak eerst het tussenliggende paginasegment adventure
:
-
Aanmelden bij AEM auteur
-
Navigeer aan Plaatsen > WKND App > gebruiken > en > WKND App Homepage
- Deze AEM pagina wordt in kaart gebracht als wortel van de SPA, zodat is dit waar wij beginnen de AEM paginastructuur voor andere SPA routes te bouwen.
-
Tik creeer en selecteer Pagina
-
Selecteer het Verre malplaatje van de SPA van de Pagina, en Tik daarna
-
Pagina-eigenschappen invullen
- Titel: Adventure
- Naam:
adventure
- Deze waarde bepaalt URL van de AEM pagina, en moet daarom het de routesegment van de SPA aanpassen.
-
Tik Gereed
Maak vervolgens de AEM pagina's die overeenkomen met elk van de SPA URL's waarvoor bewerkbare gebieden nodig zijn.
-
Navigeer in de nieuwe pagina van het Adventure in Plaats Admin
-
Tik creeer en selecteer Pagina
-
Selecteer het Verre malplaatje van de SPA van de Pagina, en Tik daarna
-
Pagina-eigenschappen invullen
- Titel: Bali Surf Camp
- Naam:
bali-surf-camp
- Deze waarde bepaalt URL van de AEM pagina, en moet daarom het laatste segment van de SPA' route aanpassen
-
Tik Gereed
-
Herhaal de stappen 3-6 om Beervana in Portland pagina tot stand te brengen, met:
- Titel: Beervana in Portland
- Naam:
beervana-in-portland
- Deze waarde bepaalt URL van de AEM pagina, en moet daarom het laatste segment van de SPA' route aanpassen
Deze twee AEM pagina's houden de respectieve-authored inhoud voor hun passende SPA routes. Als andere SPA routes auteursrecht vereisen, moeten de nieuwe AEMPagina's bij hun SPA URL onder de Verre de wortelpagina van SPA pagina (/content/wknd-app/us/en/home
) in AEM worden gecreeerd.
De WKND-app bijwerken
Plaats de <ResponsiveGrid...>
component die in het laatste hoofdstukwordt gecreeerd, in onze AdventureDetail
SPA component, die tot een editable container leiden.
De SPA ResponsiveGrid plaatsen
Door <ResponsiveGrid...>
in de AdventureDetail
-component te plaatsen, wordt een bewerkbare container in die route gemaakt. De truc is dat meerdere routes de AdventureDetail
-component gebruiken om te renderen, we het <ResponsiveGrid...>'s pagePath
-kenmerk dynamisch moeten aanpassen. pagePath
moet worden afgeleid om aan de overeenkomstige AEM pagina te richten, die op het avontuur wordt gebaseerd de instantie van de route toont.
-
Openen en bewerken
react-app-/src/components/AdventureDetail.js
-
Importeer de component
ResponsiveGrid
en plaats deze boven de component<h2>Itinerary</h2>
. -
Stel de volgende kenmerken in voor de component
<ResponsiveGrid...>
. Het kenmerkpagePath
voegt de huidigeslug
toe die aan de avontuurpagina wordt toegewezen volgens de bovenstaande toewijzing.pagePath = '/content/wknd-app/us/en/home/adventure/${slug}'
itemPath = 'root/responsivegrid'
Hierdoor krijgt de component
ResponsiveGrid
de opdracht om de inhoud ervan op te halen uit de AEM bron:/content/wknd-app/us/en/home/adventure/${slug}/jcr:content/root/responsivegrid
Werk AdventureDetail.js
bij met de volgende regels:
...
import { ResponsiveGrid } from '@adobe/aem-react-editable-components';
...
function AdventureDetailRender(props) {
...
// Get the slug from the React route parameter, this will be used to specify the AEM Page to store/read editable content from
const { slug } = useParams();
return(
...
// Pass the slug in
function AdventureDetailRender({ title, primaryImage, activity, adventureType, tripLength,
groupSize, difficulty, price, description, itinerary, references, slug }) {
...
return (
...
<ResponsiveGrid
pagePath={`/content/wknd-app/us/en/home/adventure/${slug}`}
itemPath="root/responsivegrid"/>
<h2>Itinerary</h2>
...
)
}
)
}
Het bestand AdventureDetail.js
moet er als volgt uitzien:
Auteur van de container in AEM
Nu <ResponsiveGrid...>
op zijn plaats is en de pagePath
dynamisch is ingesteld op basis van het avontuur dat wordt gerenderd, proberen we de inhoud ervan te ontwerpen.
-
Aanmelden bij AEM auteur
-
Navigeer aan Plaatsen > App WKND > gebruiken > en
-
geeft WKND de pagina van het Huis van de App uit
- Navigeer aan de Bali Surf Camp route in de SPA om het uit te geven
-
Selecteer Voorproef van de wijze-selecteur in top-right
-
Tik op Bali Surf Camp kaart in de SPA om aan zijn route te navigeren
-
Selecteer uitgeven van de wijze-selecteur
-
Bepaal de plaats van de Container van de Lay-out editable gebied recht boven de Reis
-
Open de zijbar van de Redacteur van de Pagina, en selecteer de mening van Componenten
-
Sleep enkele toegelaten componenten in de Container van de Lay-out
- Afbeelding
- Tekst
- Titel
En creeer wat promotiemateriaal. Het zou er ongeveer als volgt kunnen uitzien:
-
Voorproef uw veranderingen in AEM Redacteur van de Pagina
-
Vernieuw de WKND App die plaatselijk op http://localhost:3000loopt, navigeer aan de Bali Surf Camp route om de authored veranderingen te zien!
Wanneer het navigeren aan een adventure detailroute die geen in kaart gebrachte AEM Pagina heeft, is er geen auteursbaarheid op die routeinstantie. Om auteursrecht op deze pagina's toe te laten, maak eenvoudig een AEM Pagina met de passende naam onder de pagina van het Vontuur!
Gefeliciteerd!
Gefeliciteerd! U hebt authoring vermogen toegevoegd aan dynamische routes in de SPA!
- De component ResponsiveGrid van de component React Editable AEM toegevoegd aan een dynamische route
- Opgezette AEM pagina's ter ondersteuning van het ontwerpen van twee specifieke routes in de SPA (Bali Surf Camp en Beervana in Portland)
- Geautoriseerde inhoud op de dynamische Bali Surf Camp route!
U hebt nu het onderzoeken van de eerste stappen van hoe AEM SPA Redacteur kan worden gebruikt om specifieke editable gebieden aan een Verre SPA toe te voegen!