Dynamiska vägar och redigerbara komponenter
I det här kapitlet aktiverar vi två dynamiska Adventure Detail-vägar som stöder redigerbara komponenter: Bali Surf Camp och Beervana i Portland.
Rutten Adventure Detail SPA definieras som /adventure/:slug
där slug
är en unik identifieraregenskap i Adventure Content Fragment.
Mappa SPA URL:er till AEM sidor
I de föregående två kapitlen mappades redigerbart komponentinnehåll från SPA hemvy till motsvarande SPA i AEM /content/wknd-app/us/en/
.
Att definiera mappning för redigerbara komponenter för de SPA dynamiska vägarna liknar varandra, men vi måste skapa ett 1:1-mappningsschema mellan instanser av flödet och AEM sidor.
I den här självstudiekursen tar vi namnet på WKND Adventure Content Fragment, som är det sista segmentet i sökvägen, och mappar det till en enkel sökväg under /content/wknd-app/us/en/adventure
.
På grundval av den här mappningen måste vi skapa två nya AEM sidor:
/content/wknd-app/us/en/home/adventure/bali-surf-camp
/content/wknd-app/us/en/home/adventure/beervana-in-portland
SPA
Mappningen för begäranden som lämnar SPA konfigureras via konfigurationen setupProxy
som görs i Bootstrap i SPA.
SPA Editor-mappning
Mappningen för SPA begäranden när SPA öppnas via AEM SPA Editor konfigureras via konfigurationen för delningsmappningar i Konfigurera AEM.
Skapa innehållssidor i AEM
Skapa först mellanliggande sidsegment adventure
:
-
Logga in på AEM författare
-
Navigera till Webbplatser > WKND-app > oss > en > WKND-appens startsida
- Den här AEM är mappad som SPA rot, så här börjar vi skapa den AEM sidstrukturen för andra SPA.
-
Tryck på Skapa och välj Sida
-
Välj mallen SPA och tryck på Nästa
-
Fyll i Sidegenskaper
- Titel: Äventyr
- Namn:
adventure
- Det här värdet definierar AEM sidas URL och måste därför matcha SPA ruttsegment.
-
Tryck på Klar
Skapa sedan AEM sidor som motsvarar var och en av de SPA URL:er som kräver redigerbara områden.
-
Navigera till den nya sidan Adventure i Webbplatsadministratören
-
Tryck på Skapa och välj Sida
-
Välj mallen SPA och tryck på Nästa
-
Fyll i Sidegenskaper
- Titel: Bali Surf Camp
- Namn:
bali-surf-camp
- Det här värdet definierar AEM sidas URL och måste därför matcha SPA rutts sista segment
-
Tryck på Klar
-
Upprepa steg 3-6 för att skapa sidan Beervana i Portland med:
- Titel: Beervana i Portland
- Namn:
beervana-in-portland
- Det här värdet definierar AEM sidas URL och måste därför matcha SPA rutts sista segment
Dessa två AEM sidor innehåller det innehåll som har skapats för respektive SPA. Om andra SPA kräver redigering måste nya AEM sidor skapas på SPA URL-adressen under SPA fjärrsidans rotsida (/content/wknd-app/us/en/home
) i AEM.
Uppdatera WKND-appen
Låt oss placera komponenten <ResponsiveGrid...>
som skapades i det sista kapitlet i vår AdventureDetail
SPA-komponent och skapa en redigerbar behållare.
Placera SPA för ResponsiveGrid
Om du placerar <ResponsiveGrid...>
i komponenten AdventureDetail
skapas en redigerbar behållare i den vägen. Tricket är att eftersom flera vägar använder komponenten AdventureDetail
för att återge, måste vi justera attributet <ResponsiveGrid...>'s pagePath
dynamiskt. pagePath
måste härledas till att peka på motsvarande AEM, baserat på äventyret som flödesinstansen visar.
-
Öppna och redigera
react-app-/src/components/AdventureDetail.js
-
Importera komponenten
ResponsiveGrid
och placera den ovanför komponenten<h2>Itinerary</h2>
. -
Ange följande attribut för komponenten
<ResponsiveGrid...>
. Observera att attributetpagePath
lägger till den aktuellaslug
som mappar till äventyrssidan enligt mappningen som definieras ovan.pagePath = '/content/wknd-app/us/en/home/adventure/${slug}'
itemPath = 'root/responsivegrid'
Detta instruerar komponenten
ResponsiveGrid
att hämta sitt innehåll från den AEM resursen:/content/wknd-app/us/en/home/adventure/${slug}/jcr:content/root/responsivegrid
Uppdatera AdventureDetail.js
med följande rader:
...
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>
...
)
}
)
}
Filen AdventureDetail.js
ska se ut så här:
Skapa behållaren i AEM
När <ResponsiveGrid...>
är på plats och dess pagePath
dynamiskt anges baserat på det äventyr som återges, försöker vi att skapa innehåll i den.
-
Logga in på AEM författare
-
Navigera till Sites > WKND App > us > en
-
Redigera WKND-appens startsida
- Navigera till vägen Bali Surf Camp i SPA för att redigera den
-
Välj Förhandsgranska i lägesväljaren i det övre högra hörnet
-
Tryck på Bali Surf Camp -kortet i SPA för att navigera till dess väg
-
Välj Redigera i lägesväljaren
-
Leta reda på det redigerbara området Layoutbehållare precis ovanför Intervär
-
Öppna sidredigerarens sidfält och välj vyn Komponenter
-
Dra några av de aktiverade komponenterna till layoutbehållaren
- Bild
- Text
- Titel
Och skapa marknadsföringsmaterial. Det skulle kunna se ut ungefär så här:
-
Förhandsgranska dina ändringar i AEM Page Editor
-
Uppdatera WKND-appen som körs lokalt på http://localhost:3000, navigera till Bali Surf Camp för att se de redigerade ändringarna!
När du navigerar till en äventyrsinformationsväg som inte har någon mappad AEM finns det ingen redigeringsmöjlighet för den flödesinstansen. Om du vill aktivera redigering på de här sidorna skapar du bara en AEM sida med det matchande namnet på sidan Adventure!
Grattis!
Grattis! Du har lagt till redigeringsmöjligheter för dynamiska vägar i SPA!
- AEM React Editable Components ResponsiveGrid-komponent har lagts till på en dynamisk väg
- Skapade AEM sidor med stöd för utveckling av två specifika rutter i SPA (Bali Surf Camp och Beervana i Portland)
- Skapat innehåll på den dynamiska Bali Surf Camp-vägen!
Du har nu gått igenom de första stegen i hur AEM kan användas för att lägga till specifika redigerbara områden i en SPA.