🚀 Capítulo 13: Rotas - Hiperdrive
🎯 Objetivo da Aula
Ao final desta aula, você saberá como criar uma aplicação com múltiplas páginas (rotas) no React usando a biblioteca React Router, permitindo que o usuário navegue entre telas sem que a página inteira precise ser recarregada.
🏢 O Cenário Prático (Seu Desafio)
O painel da sua nave está ficando muito cheio! Você precisa dividir as informações: uma página para o Painel de Controle e outra para o Quartel General. Seu desafio é criar o sistema de Hiperdrive (Navegação) para alternar entre essas telas instantaneamente!
🧠 Fundamentos: A Teoria Traduzida
Por padrão, o React cria aplicações de “Página Única” (SPA). Para simular que estamos mudando de página, usamos uma biblioteca chamada react-router-dom.
Os principais componentes dela são:
BrowserRouter: Envolve toda a aplicação para permitir o uso de rotas.Routes: Uma caixa que guarda todas as rotas possíveis.Route: Define o caminho (URL) e qual componente deve aparecer.Link: Substitui a tag<a>do HTML. Serve para mudar de página sem recarregar tudo.
📖 Exemplo Guiado: Configurando as Rotas
Vamos instalar a biblioteca e configurar as rotas.
🛠️ Passo a Passo (Instalação)
No terminal da pasta do seu projeto, pare o servidor e digite:
npm install react-router-dom🛠️ Passo a Passo (Código)
Abra o arquivo src/App.jsx e configure as rotas:
import { BrowserRouter, Routes, Route, Link } from 'react-router-dom';
// Componentes das páginas
function Painel() { return <h2>🎛️ Painel de Controle</h2>; }
function QG() { return <h2>🏰 Quartel General</h2>; }
function App() {
return (
<BrowserRouter>
<div>
<h1>🚀 Sistema de Hiperdrive</h1>
{/* Menu de Navegação */}
<nav>
<Link to="/">Painel</Link> | <Link to="/qg">Quartel General</Link>
</nav>
<hr />
{/* Onde as páginas vão aparecer */}
<Routes>
<Route path="/" element={<Painel />} />
<Route path="/qg" element={<QG />} />
</Routes>
</div>
</BrowserRouter>
)
}
export default App;🕹️ Como Executar e Testar no VS Code
- Salve e execute
npm run dev. - Clique nos links “Painel” e “Quartel General”. Veja que o texto embaixo muda na hora, e a aba do navegador não fica rodando aquela bolinha de carregamento!
🛠️ Prática Obrigatória 1
Crie um terceiro componente chamado Hangar (pode ser apenas uma função retornando um título). Adicione uma nova rota para /hangar que exiba esse componente.
🛠️ Prática Obrigatória 2
Adicione um link para o Hangar no menu de navegação usando o componente <Link>.
🔑 Gabarito de Código/Fórmulas
Prática 1 e 2:
No App.jsx:
function Hangar() { return <h2>🛸 Hangar de Naves</h2>; }
// No menu:
<Link to="/hangar">Hangar</Link>
// Nas Routes:
<Route path="/hangar" element={<Hangar />} />