Sobre
Turmas
Projetos
Time
Materiais
Artigos
Aulas
PT
EN
Materiais
Materiais
· Frontend
9. React Fundamentos
18 min de leitura
→
Anterior
8. TypeScript
Próximo
10. React (Intermediário)
→
Nesta página
Objetivo da aula
Pré-requisitos
O que você será capaz de explicar ao final
9.1. O que é React (modelo mental)
UI como função do estado (UI = f(state))
Componentes como “peças” reutilizáveis
Renderização declarativa vs manipulação manual do DOM
Virtual DOM e reconciliação (visão geral leve)
Fluxo de dados: de cima para baixo (props)
9.2. Componentes (Function Components)
O que é um componente: função que retorna UI
Convenções
PascalCase
export/import
Responsabilidade e composição
Exemplo mínimo de componente (TSX) e explicação linha a linha
9.3. JSX e TSX (o “HTML dentro do JS” sem mito)
JSX como sintaxe (não é string, não é HTML)
Por que `className` e não `class`
Expressões dentro de `{}`
Renderizar variáveis
Ternário e `&&` (com cuidado)
Atributos e tipos: string vs expressão
Regras do JSX
Um único “root”
Fragment
O que vira “JS de verdade” (visão geral)
9.4. Props (entrada do componente)
Props como parâmetros
Por que props não devem ser mutadas
Tipagem de props em TypeScript
Props `children` (noção)
Padrões comuns
Exemplo mínimo: Card + Button com `onClick` tipado
9.5. State (useState) — quando a UI precisa “lembrar”
O que é state e por que existe
`useState`: valor atual + setter
Regras importantes
Nunca mutar state diretamente
Atualizações podem ser agrupadas (noção)
Functional update quando depende do anterior
Exemplos mínimos
Contador (bem explicado)
Toggle (mostrar/esconder)
9.6. Eventos no React (comparando com DOM)
`onClick`, `onChange`, `onSubmit`
Synthetic events (visão geral)
Tipar eventos com TypeScript (sem exagero)
Exemplo: clique com state + submit com preventDefault
9.7. Formulários controlados (o padrão “profissional”)
Controlado vs não-controlado
Input controlado: `value` + `onChange`
Trade-off: estado por campo vs estado como objeto
9.8. Renderização de listas (map) e keys
Renderizar arrays com `.map`
`key`: por que existe
Por que não usar `index` quando a lista muda
Estados comuns: lista vazia, loading, error (noção, sem fetch)
Exemplo mínimo: lista com `id` + botão para adicionar item (sem persistência)
9.9. Boas práticas de estrutura e legibilidade
Componentes pequenos
Nomear handlers: `handleSubmit`, `handleChange`
Evitar lógica pesada dentro do JSX
Padrões de pasta (visão geral)
Estilos (sem ensinar, apenas mencionar)
9.10. Erros comuns e confusões clássicas
9.11. Glossário rápido
9.12. Resumo final