🛤️

Módulo 16: Routing I (Navegação Básica)

2. Resumo da Aula Anterior

No Lote Anterior (Módulos 14-15), dominámos os Formulários Reativos e as validações complexas. Agora, a nossa aplicação precisa de crescer: vamos aprender a criar múltiplas "páginas" e caminhos sem nunca recarregar o browser, transformando o site numa **SPA (Single Page Application)**.

3. O Que Vais Aprender Hoje

4. Teoria: A Ilusão das Páginas

Conceito: Num site tradicional, cada clique num link faz o browser pedir um novo ficheiro HTML ao servidor. No Angular, o index.html nunca muda. O Router apenas troca o componente que está a ser mostrado no ecrã de acordo com o endereço (URL).

🎭 Analogia: O Palco de Teatro

Imagina que o Angular é um teatro moderno:

  • O Index.html (O Palco): É a estrutura fixa. As cortinas, as luzes e as cadeiras não mudam.
  • O Router (O Encenador): Quando o público pede a "Cena 2" (Muda a URL), o encenador manda os atores da Cena 1 saírem e entrarem os da Cena 2.
  • O Router-Outlet (O Espaço de Cena): É o retângulo exato no palco onde a magia acontece. É ali que os cenários (Componentes) são trocados.
  • O RouterLink (O Bilhete): É a indicação de qual cena o público quer ver a seguir, sem nunca sair do teatro para ir a outro edifício.

5. Exemplos Práticos

Exemplo 1: Configurar a Tabela de Rotas

Definir os caminhos no ficheiro app.routes.ts.

import { Routes } from '@angular/router';
import { HomeComp } from './home.component';
import { SobreComp } from './sobre.component';

export const routes: Routes = [
  { path: 'home', component: HomeComp },
  { path: 'sobre', component: SobreComp },
  { path: '', redirectTo: '/home', pathMatch: 'full' } // Rota inicial
];

Exemplo 2: O Marcador de Posição

No app.component.html, dizemos onde os componentes devem aparecer.

<nav>
  <!-- Menu Fixo -->
</nav>

<!-- Aqui é onde a página muda! -->
<router-outlet></router-outlet>

<footer>Rodapé Fixo</footer>

Exemplo 3: Navegar com Segurança

Não uses `href`! Usa `routerLink` para manter a app reativa.

<!-- Errado (Recarrega a app) -->
<a href="/sobre">Sobre</a>

<!-- Correto (Navegação Angular instantânea) -->
<a routerLink="/sobre" routerLinkActive="active-class">Sobre</a>

6. Agora é a Tua Vez!

Vamos criar o "Navegador Interestelar":

  1. Cria dois componentes novos: PlanetaComponent e NaveComponent.
  2. No teu ficheiro de rotas, cria os caminhos /planeta e /nave para ligar a estes componentes.
  3. No app.component.html, adiciona o <router-outlet> abaixo da barra de navegação.
  4. Cria uma barra de navegação com dois botões que usam o routerLink.
  5. Usa o routerLinkActive para mudar a cor do botão quando estás na página correspondente.

7. Verificação de Conhecimento

Carregando quiz...

8. Resumo do Que Aprendemos

9. Desafios Práticos

Desafio 1: O Ecrã em Branco

Se criares uma rota { path: 'loja', component: LojaComp } e tentares aceder a /loja-online (que não existe), o que acontece por defeito?

Desafio 2: Navegar via Código

Imagina que o utilizador termina um formulário e tu queres mandá-lo para a página de "Sucesso" automaticamente. Podes usar o routerLink dentro do ficheiro TypeScript?

Desafio 3: A Rota Vazia

Para que serve o pathMatch: 'full' quando definimos a rota para o caminho vazio ''?

« Aula Anterior Próxima Aula »