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.

Dynamische routes en editable componenten

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 .

Externe SPA
Pad AEM
/
/content/wknd-app/us/nl/home
/adventure/bali-surf-kamp
/content/wknd-app/us/nl/home/adventure/bali-surf-kamp
/adventure/beervana-portland
/content/wknd-app/us/nl/home/adventure/beervana-in-portland

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 :

  1. Aanmelden bij AEM auteur

  2. 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.
  3. Tik creeer en selecteer Pagina

  4. Selecteer het Verre malplaatje van de SPA van de Pagina, en Tik daarna

  5. 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.
  6. Tik Gereed

Maak vervolgens de AEM pagina's die overeenkomen met elk van de SPA URL's waarvoor bewerkbare gebieden nodig zijn.

  1. Navigeer in de nieuwe pagina van het Adventure in Plaats Admin

  2. Tik creeer en selecteer Pagina

  3. Selecteer het Verre malplaatje van de SPA van de Pagina, en Tik daarna

  4. 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
  5. Tik Gereed

  6. 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.

  1. Openen en bewerken react-app-/src/components/AdventureDetail.js

  2. Importeer de component ResponsiveGrid en plaats deze boven de component <h2>Itinerary</h2> .

  3. Stel de volgende kenmerken in voor de component <ResponsiveGrid...> . Het kenmerk pagePath voegt de huidige slug 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:

AdventureDetail.js

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.

  1. Aanmelden bij AEM auteur

  2. Navigeer aan Plaatsen > App WKND > gebruiken > en

  3. 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
  4. Selecteer Voorproef van de wijze-selecteur in top-right

  5. Tik op Bali Surf Camp kaart in de SPA om aan zijn route te navigeren

  6. Selecteer uitgeven van de wijze-selecteur

  7. Bepaal de plaats van de Container van de Lay-out editable gebied recht boven de Reis

  8. Open de zijbar van de Redacteur van de Pagina, en selecteer de mening van Componenten

  9. 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:

    Bali Adventure Detail Authoring

  10. Voorproef uw veranderingen in AEM Redacteur van de Pagina

  11. Vernieuw de WKND App die plaatselijk op http://localhost:3000loopt, navigeer aan de Bali Surf Camp route om de authored veranderingen te zien!

    Verre SPA Bali

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!

recommendation-more-help
e25b6834-e87f-4ff3-ba56-4cd16cdfdec4