React – Props

0

Se componentes são os blocos de construção de uma interface em React, então Props são a forma de passar informações entre esses blocos.

Uma analogia útil: imagine componentes como peças de LEGO. Cada peça pode receber características diferentes. As props são essas características.


🎯 Objetivos da Lição

Ao final desta aula, o aluno será capaz de:

  • Entender o que são props
  • Passar dados de um componente para outro
  • Receber props dentro de componentes
  • Utilizar props para tornar componentes reutilizáveis
  • Entender a diferença entre props e state
  • Criar componentes parametrizados

📖 Parte 1 – O que são Props

Props significa:

Properties (Propriedades)

São valores enviados de um componente pai para um componente filho.

Exemplo simples:

<Botao texto="Iniciar" />

Aqui estamos enviando a propriedade texto para o componente Botao.


📖 Parte 2 – Recebendo Props no Componente

Dentro do componente, recebemos props como parâmetro da função.

const Botao = (props) => {
return <button>{props.texto}</button>;
};

Se o componente for usado assim:

<Botao texto="Jogar" />

O resultado será:

[Jogar]

📖 Parte 3 – Fluxo de Dados no React

React segue um fluxo chamado:

One-way data flow

Significa que os dados sempre fluem:

Componente Pai → Componente Filho

Nunca o contrário diretamente.

Exemplo:

App
└── Botao

O App envia dados para Botao.


📖 Parte 4 – Exemplo Completo

Componente Botao

const Botao = (props) => {
return (
<button>
{props.texto}
</button>
);
};export default Botao;

Usando no App

import Botao from "./components/Botao";function App() {
return (
<div>
<Botao texto="Iniciar" />
<Botao texto="Opções" />
<Botao texto="Créditos" />
</div>
);
}

Resultado:

[Iniciar]
[Opções]
[Créditos]

Note que o mesmo componente é reutilizado três vezes.


📖 Parte 5 – Destructuring de Props

Uma forma mais moderna de usar props é através de destructuring.

Em vez de:

const Botao = (props) => {
return <button>{props.texto}</button>;
};

Usamos:

const Botao = ({ texto }) => {
return <button>{texto}</button>;
};

Isso torna o código mais limpo e legível.


📖 Parte 6 – Múltiplas Props

Podemos enviar várias propriedades.

Exemplo:

<Botao texto="Jogar" cor="green" tamanho="grande" />

Componente:

const Botao = ({ texto, cor, tamanho }) => {  return (
<button style={{ background: cor }}>
{texto} - {tamanho}
</button>
);};

📖 Parte 7 – Props com Números

Props também podem ser números.

<Score pontos={100} />

Componente:

const Score = ({ pontos }) => {
return <h1>Pontos: {pontos}</h1>;
};

📖 Parte 8 – Props com Boolean

<Usuario admin={true} />

Componente:

const Usuario = ({ admin }) => {
return admin ? <p>Administrador</p> : <p>Usuário</p>;
};

📖 Parte 9 – Props com Funções

Também podemos enviar funções como props.

Isso é muito comum em React.

Exemplo:

<Botao onClick={iniciarJogo} />

Componente:

const Botao = ({ onClick }) => {
return (
<button onClick={onClick}>
Iniciar
</button>
);
};

📖 Parte 10 – Props Children

React possui uma prop especial chamada:

children

Ela representa o conteúdo dentro da tag.

Exemplo:

<Card>
<h2>Título</h2>
<p>Conteúdo do card</p>
</Card>

Componente:

const Card = ({ children }) => {
return (
<div className="card">
{children}
</div>
);
};

Resultado:

[ Card ]
Título
Conteúdo do card

📖 Parte 11 – Props são somente leitura

Props são imutáveis.

Não devemos modificar props dentro do componente.

Errado:

props.texto = "Novo texto";

Correto:

Props devem apenas ser usadas, não alteradas.

Se algo precisa mudar, usamos state.


📖 Parte 12 – Diferença entre Props e State

CaracterísticaPropsState
OrigemComponente paiComponente atual
Pode mudar?NãoSim
UsoConfigurar componentesDados dinâmicos

🎯 Atividade Prática – Criar Menu com Props

Vamos criar um menu reutilizando um componente de botão.


📁 Estrutura

src
└ components
├ Botao.jsx
└ Menu.jsx

Botao.jsx

const Botao = ({ texto }) => {  return (
<button>
{texto}
</button>
);};export default Botao;

Menu.jsx

import Botao from "./Botao";const Menu = () => {  return (
<div> <h1>Menu Principal</h1> <Botao texto="Iniciar" />
<Botao texto="Opções" />
<Botao texto="Créditos" /> </div>
);};export default Menu;

Usando no App.jsx

import Menu from "./components/Menu";function App() {
return <Menu />;
}export default App;

🧠 Conceitos Fixados

Após esta aula o aluno compreende:

  • o que são props
  • comunicação entre componentes
  • reutilização de componentes
  • destructuring de props
  • props com funções
  • props children
  • diferença entre props e state

📝 Critérios de Avaliação

CritérioPeso
Uso correto de props2
Reutilização de componentes2
Organização de código2
Interface funcional2
Boas práticas2

Total: 10 pontos


🚀 Desafio Extra

Melhorias possíveis:

1️⃣ Criar componente Card

2️⃣ Criar botão com props:

cor
tamanho
texto

3️⃣ Criar menu dinâmico usando array

Exemplo:

const opcoes = ["Iniciar", "Opções", "Créditos"];

Renderizar usando .map().


🎓 Conclusão

Props permitem que componentes sejam:

  • reutilizáveis
  • configuráveis
  • organizados

Sem props, componentes seriam fixos e pouco úteis.

Props tornam possível criar interfaces flexíveis e escaláveis.