Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.

Quando trabalhamos com React e Next.js, é comum usar o hook useLayoutEffect para medições ou manipulações DOM que precisam acontecer antes da pintura. Mas, ao fazer isso em SSR, aparece aquele aviso chato por causa do uso de useLayoutEffect fora do ambiente de navegação.
A solução prática é usar um hook isomórfico que verifica o ambiente de execução e troca o useLayoutEffect por useEffect no servidor. Assim, evita-se o warning e mantém a performance na client.
No artigo do reactuse.com, eles mostram como implementar esse hook de forma simples, garantindo compatibilidade e evitando dores de cabeça na produção. Essa estratégia é especialmente útil para componentes que dependem de medições precisas, como tooltips, modais ou animações. Sem esse critério, a solução pode parecer simples no começo e cara no suporte.
Na sua experiência, já passou por esse tipo de conflito? Como costuma resolver esses efeitos em SSR para evitar impacto na experiência do usuário? O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar.
Eu faria um wrapper que troca automaticamente, assim não fico com dor de cabeça ao migrar componentes. Já passei por isso, dá trabalho depois pra limpar.
Boa dica, ajuda pra cacete na hora de evitar esses warnings chatos. Eu normalmente uso um hook personalizado assim também, funciona bem pra evitar o refluxo na renderização.
No meu time, a gente sempre tenta separar lógica de efeitos que só rolam no cliente. Mas esse truque do hook isomórfico é massa, resolve de verdade.