useReducer
Alternativa ao useState para estado complexo com múltiplas transições.
Recebe (reducer, initialState). O reducer é função pura (state, action) => newState. dispatch(action) dispara a transição. Centraliza lógica de state em um lugar.
Estado com múltiplos sub-valores relacionados. Próximo state depende do atual de forma complexa. Lógica de transição que você quer testar isoladamente. +4 useState entrelaçados.
1-2 valores simples independentes. Estado que não tem lógica de transição complexa. Quando a simplicidade de useState é suficiente.
Hook básico para estado local do componente.
Roda side effects após o React commitar mudanças no DOM.
Como useEffect, mas executa síncronamente ANTES do browser pintar.
Memoiza o RESULTADO de uma computação. Recomputa apenas quando as deps mudam.
Memoiza uma FUNÇÃO. Mantém a mesma referência entre renders enquanto deps não mudam.
Cria objeto { current } mutável que persiste entre renders sem causar re-render quando alterado.
Lê o valor do Context Provider mais próximo na árvore. Re-renderiza quando value muda.