Rotas dinâmicas e componentes editáveis

Neste capítulo, ativamos duas rotas de Detalhe de aventura dinâmicas para suportar componentes editáveis; Campo de Surf de Bali e Beervana in Portland.

Rotas dinâmicas e componentes editáveis

A rota do SPA Adventure Detail é definida como /adventure/:slug onde slug é uma propriedade de identificador exclusivo no Fragmento de conteúdo de aventura.

Mapear os URLs do SPA para páginas do AEM

Nos dois capítulos anteriores, mapeamos o conteúdo de componentes editáveis da visualização inicial do SPA para a página raiz do SPA remoto correspondente no AEM em /content/wknd-app/us/en/.

A definição de mapeamento para componentes editáveis para as rotas dinâmicas do SPA é semelhante, no entanto, devemos criar um esquema de mapeamento 1:1 entre as instâncias das páginas de rota e AEM.

Neste tutorial, pegamos o nome do Fragmento de conteúdo WKND Adventure, que é o último segmento do caminho, e o mapeamos para um caminho simples em /content/wknd-app/us/en/adventure.

Rota remota do SPA
Caminho da página AEM
/
/content/wknd-app/us/en/home
/aventura/bali-surf-camp
/content/wknd-app/us/en/home/Adventure/bali-surf-camp
/aventura/beervana-portland
/content/wknd-app/us/en/home/Adventure/beervana-in-portland

Então, com base nesse mapeamento, devemos criar duas novas páginas de AEM em:

  • /content/wknd-app/us/en/home/adventure/bali-surf-camp
  • /content/wknd-app/us/en/home/adventure/beervana-in-portland

Mapeamento remoto do SPA

O mapeamento de solicitações que deixam o SPA remoto é configurado por meio da variável setupProxy configuração feita em Bootstrap do SPA.

Mapeamento do editor de SPA

O mapeamento das solicitações do SPA quando o SPA é aberto por meio do editor AEM SPA é configurado por meio da configuração Mapeamentos do Sling feita em Configurar AEM.

Criar páginas de conteúdo no AEM

Primeiro, crie o intermediário adventure Segmento de página:

  1. Faça logon no AEM Author

  2. Navegue até Sites > Aplicativo WKND > br > pt > Página inicial do aplicativo WKND

    • Essa página do AEM é mapeada como a raiz do SPA, então é aqui que começamos a construir a estrutura da página do AEM para outras rotas do SPA.
  3. Toque Criar e selecione Página

  4. Selecione o Página remota do SPA modelo e toque em Próxima

  5. Preencher as propriedades da página

    • Título: Aventura
    • Nome: adventure
      • Esse valor define o URL da página AEM e, portanto, deve corresponder ao segmento de rota do SPA.
  6. Toque Concluído

Em seguida, crie as páginas do AEM que correspondem a cada um dos URLs do SPA que exigem áreas editáveis.

  1. Navegue até o novo Aventura página no Administrador do site

  2. Toque Criar e selecione Página

  3. Selecione o Página remota do SPA modelo e toque em Próxima

  4. Preencher as propriedades da página

    • Título: Campo de Surf em Bali
    • Nome: bali-surf-camp
      • Esse valor define o URL da página AEM e, portanto, deve corresponder ao último segmento da rota do SPA
  5. Toque Concluído

  6. Repita as etapas 3 a 6 para criar a variável Beervana in Portland página, com:

    • Título: Beervana em Portland
    • Nome: beervana-in-portland
      • Esse valor define o URL da página AEM e, portanto, deve corresponder ao último segmento da rota do SPA

Essas duas páginas AEM contêm o respectivo conteúdo criado para suas rotas SPA correspondentes. Se outras rotas de SPA exigirem criação, as novas Páginas AEM deverão ser criadas no URL do SPA na página raiz da página remota do SPA (/content/wknd-app/us/en/home) no AEM.

Atualizar o aplicativo WKND

Vamos colocar o <ResponsiveGrid...> componente criado na último capítulo, em nosso AdventureDetail Componente do SPA, criação de um contêiner editável.

Inserir o componente ResponsiveGrid SPA

Colocar o <ResponsiveGrid...> no AdventureDetail o componente cria um contêiner editável nessa rota. O truque é porque várias rotas usam o AdventureDetail para renderizar, devemos ajustar dinamicamente a variável <ResponsiveGrid...>'s pagePath atributo. A variável pagePath deve ser derivado para apontar para a página AEM correspondente, com base na aventura que a instância da rota exibe.

  1. Abrir e editar react-app-/src/components/AdventureDetail.js

  2. Importe o ResponsiveGrid e coloque-o acima do <h2>Itinerary</h2> componente.

  3. Defina os seguintes atributos no <ResponsiveGrid...> componente. Observe que pagePath o atributo adiciona o atual slug que mapeia para a página de aventura de acordo com o mapeamento definido acima.

    • pagePath = '/content/wknd-app/us/en/home/adventure/${slug}'
    • itemPath = 'root/responsivegrid'

    Isso instrui o ResponsiveGrid para recuperar seu conteúdo do recurso AEM:

    • /content/wknd-app/us/en/home/adventure/${slug}/jcr:content/root/responsivegrid

Atualizar AdventureDetail.js com as seguintes linhas:

...
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>
                ...
            )
        }
    )
}

A variável AdventureDetail.js O arquivo deve ter a seguinte aparência:

AdventureDetail.js

Criar o contêiner no AEM

Com o <ResponsiveGrid...> em vigor, e pagePath dinamicamente definido com base na aventura que está sendo renderizada, tentamos criar conteúdo nele.

  1. Faça logon no AEM Author

  2. Navegue até Sites > Aplicativo WKND > br > pt-BR

  3. Editar o Página inicial do aplicativo WKND página

    • Navegue até a Campo de Surf de Bali roteamento no SPA para editá-lo
  4. Selecionar Visualizar no seletor de modo no canto superior direito

  5. Toque no Campo de Surf de Bali no SPA para navegar até a sua rota

  6. Selecionar Editar no seletor de modo

  7. Localize o Contêiner de layout área editável logo acima da Itinerário

  8. Abra o Barra lateral do Editor de páginas e selecione a variável Visualização Componentes

  9. Arraste alguns dos componentes ativados para a Contêiner de layout

    • Imagem
    • Texto
    • Título

    E criar algum material de marketing promocional. Pode ser semelhante a:

    Criação de detalhes de aventura de Bali

  10. Visualizar suas alterações no Editor de página AEM

  11. Atualizar o aplicativo WKND em execução localmente em http://localhost:3000, navegue até o Campo de Surf de Bali rota para ver as alterações criadas!

    Bali SPA remoto

Ao navegar para uma rota de detalhes de aventura que não tem uma página AEM mapeada, não há capacidade de criação nessa instância de rota. Para ativar a criação nessas páginas, basta criar uma página AEM com o nome correspondente sob o Aventura página!

Parabéns.

Parabéns! Você adicionou a capacidade de criação a rotas dinâmicas no SPA!

  • Adição do componente ResponsiveGrid do componente editável AEM React a uma rota dinâmica
  • Páginas do AEM criadas para apoiar a criação de duas rotas específicas no SPA (Campo de Surfe de Bali e Beervana em Portland)
  • Conteúdo criado na rota dinâmica do Campo de Surf de Bali!

Você concluiu a exploração dos primeiros passos de como o Editor SPA AEM pode ser usado para adicionar áreas editáveis específicas a um SPA remoto!

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