Pular para o conteúdo principal

Uma publicação com a etiqueta "suspense"

Ver todas as etiquetas

React 19.3 e o browser(): o fim do useEffect(() => setMounted(true))

· 12 min para ler
Bruno Carneiro
Fundador da @TautornTech

Se você já trabalhou com React e renderização no servidor (SSR), com certeza já escreveu isso aqui:

const [mounted, setMounted] = useState(false);

useEffect(() => {
setMounted(true);
}, []);

if (!mounted) return null;

Ou essa outra versão, que parece mais simples e é pior:

if (typeof window === 'undefined') return null;

As duas existem pelo mesmo motivo: alguns componentes simplesmente não têm o que mostrar no servidor. Eles dependem do localStorage, do fuso horário do usuário, do tamanho da tela, de uma biblioteca que mexe no window. E o React nunca teve um jeito oficial de dizer "esse aqui, só no navegador".

No React 19.3, lançado em 9 de setembro de 2026, isso mudou. Chegou o browser().