Aula 04 – Hooks II: useEffect e Ciclo de Vida 🔄
Nesta aula, vamos entender como lidar com efeitos colaterais em nossos componentes, como buscar dados de APIs e sincronizar o React com o mundo exterior.
🛰️ O que são Efeitos Colaterais?
Efeitos colaterais (side effects) são ações que acontecem fora do fluxo de renderização do React. Exemplos: - Buscar dados de uma API (fetch). - Manipular o DOM diretamente (raro, mas acontece). - Configurar um cronômetro (setInterval).
🎣 O Hook useEffect
O useEffect nos permite executar código em momentos específicos do ciclo de vida do componente.
import { useEffect, useState } from 'react';
function ExemploEfeito() {
useEffect(() => {
console.log("O componente foi montado!");
// Opcional: Função de limpeza (cleanup)
return () => console.log("O componente será desmontado");
}, []); // Array de dependências
return <h1>Confira o console!</h1>;
}
📦 O Array de Dependências
O comportamento do useEffect muda drasticamente dependendo do que passamos no segundo argumento:
| Array | Comportamento |
|---|---|
| Sem o array | Executa a cada renderização (Cuidado!). |
Array vazio [] |
Executa apenas uma vez (quando o componente monta). |
Com variáveis [prop, estado] |
Executa sempre que uma dessas variáveis mudar. |
🌐 Buscando Dados de uma API
O uso mais comum do useEffect é para carregar dados assim que a tela abre.
🚀 Prática da Aula
Vamos criar um buscador de usuários do GitHub.
- Crie um estado para o
usuarioe outro para onomeUsuario. - Use o
useEffectpara carregar os dados de um usuário padrão ao iniciar. - Adicione um botão que, ao ser clicado, dispara uma nova busca baseada no input.
Dica: Loading
Sempre crie um estado loading (true/false) para mostrar uma mensagem de "Carregando..." enquanto a API não responde. Isso melhora muito a experiência do usuário (UX).
🧩 Ciclo de Vida do Componente
graph LR
A[Mounting] --> B[Updating]
B --> C[Unmounting]
style A fill:#dfd
style B fill:#ffd
style C fill:#fdd
- Mounting: Quando o componente nasce na tela.
- Updating: Quando o estado ou as props mudam.
- Unmounting: Quando o componente sai da tela.