🚀 Capítulo 03: Props - Mensagens do R2-D2
🎯 Objetivo da Aula
Ao final desta aula, você será capaz de criar componentes reutilizáveis e passar informações de um componente Pai para um componente Filho usando as Props (Propriedades).
🏢 O Cenário Prático (Seu Desafio)
A Aliança Rebelde tem vários caças X-Wing. Em vez de criar um código novo para cada caça, seu desafio hoje é criar um único componente de Caça e usar o R2-D2 (as Props) para passar o nome do piloto e o número do caça para cada um deles!
🧠 Fundamentos: A Teoria Traduzida
No React, as Props são como os atributos que você passa para as tags HTML (como o src da tag img). Elas servem para enviar dados de um componente para outro.
Regras das Props:
- Unidirecional: Os dados sempre vão do Pai para o Filho. O Filho apenas lê as props, ele não pode alterá-las.
- Qualquer Dado: Você pode passar textos, números, booleanos, arrays e até funções pelas props.
📖 Exemplo Guiado: Criando o Componente Caça
Vamos criar um componente Filho e chamá-lo no nosso App.jsx.
🛠️ Passo a Passo (Criando o Filho)
- Dentro da pasta
src, crie um novo arquivo chamadoCaca.jsx. - Adicione o seguinte código:
// O componente recebe as 'props' como argumento da função
function Caca(props) {
return (
<div style={{ border: '1px solid gray', margin: '10px', padding: '10px' }}>
<h3>🛸 Caça: {props.nome}</h3>
<p>Piloto: {props.piloto}</p>
</div>
)
}
export default Caca;🛠️ Passo a Passo (Chamando no Pai)
Abra o arquivo src/App.jsx e use o componente Caca passando as props:
import Caca from './Caca'; // Importa o componente filho
function App() {
return (
<div>
<h1>Líder do Esquadrão</h1>
{/* Passando informações diferentes para cada caça */}
<Caca nome="Red 5" piloto="Luke Skywalker" />
<Caca nome="Red 2" piloto="Wedge Antilles" />
</div>
)
}
export default App;🕹️ Como Executar e Testar no VS Code
- Salve os arquivos e veja o navegador.
- Você verá duas caixas cinzas na tela, cada uma com o nome do caça e do piloto que você passou nas props!
🛠️ Prática Obrigatória 1
Adicione uma nova prop chamada modelo no componente Caca. No App.jsx, passe o valor “X-Wing” para os dois caças.
🛠️ Prática Obrigatória 2
Crie um terceiro caça no App.jsx com seu próprio nome como piloto e passe o modelo como “Tie Fighter” (um caça capturado!).
🔑 Gabarito de Código/Fórmulas
Prática 1:
No Caca.jsx:
<p>Modelo: {props.modelo}</p>No App.jsx:
<Caca nome="Red 5" piloto="Luke Skywalker" modelo="X-Wing" />