Todos os artigos
Tecnologia e Stack

React Performance: Tecnicas que Impressionam em Entrevistas de Big Tech

Performance em React e um dos topicos mais cobrados em entrevistas tecnicas de empresas internacionais. Aprenda as tecnicas que realmente importam — e tambem quando nao usa-las — para se destacar em processos seletivos de Big Tech.

Alexandre Queiroz27 de março de 202657 leituras
Compartilhar:LinkedInXWhatsApp
## Por Que React Performance E Testado em Entrevistas de Big Tech Entrevistas tecnicas de empresas como Meta, Google, Airbnb, Stripe e Shopify nao avaliam so se voce sabe usar React. Elas testam se voce entende o que acontece por baixo dos panos — como o reconciliador funciona, quando o componente re-renderiza, e como voce identifica e resolve problemas de performance sem otimizacao prematura. A razao e pratica: produtos dessas empresas tem milhoes de usuarios ativos. Eles querem engenheiros que tomam decisoes informadas sobre performance, nao engenheiros que adicionam `useMemo` em tudo porque viram em um tutorial. ## Como o React Decide o Que Re-Renderizar Por padrao, quando um componente re-renderiza, todos os seus filhos re-renderizam tambem. O React compara o output anterior com o novo (reconciliacao) e atualiza apenas o que mudou no DOM — mas a fase de render acontece para todos os filhos. Isso nao e necessariamente um problema. Renders sao baratos na maioria dos casos. O problema aparece quando: - Um componente executa calculos pesados a cada render - Uma lista muito grande re-renderiza sem mudancas nos dados - Callbacks criados no pai fazem filhos perderem a referencia desnecessariamente ## React.memo: Quando Usar e Quando Evitar `React.memo` envolve um componente em uma verificacao de igualdade superficial nas props. Se as props nao mudaram, o componente nao re-renderiza. **Quando usar**: componentes puros que recebem dados primitivos ou objetos estaveis, renderizados em contextos onde o pai re-renderiza frequentemente sem que as props do filho mudem. **Quando NAO usar**: na maioria dos componentes. React.memo tem custo — a comparacao de props acontece em todo render do pai. Se o componente e simples, o overhead pode ser maior que o custo de re-renderizar. Um erro comum em entrevistas e dizer "uso React.memo em todos os componentes para evitar re-renders". A resposta esperada inclui quando a otimizacao faz sentido com base em medicao. ## useMemo: Memorizando Calculos Pesados `useMemo` memoriza o resultado de um calculo entre renders. Use quando voce tem uma operacao cara que nao precisa ser refeita se as dependencias nao mudaram: ```typescript const filteredItems = useMemo( () => items.filter(item => item.category === selectedCategory), [items, selectedCategory] ); ``` **Quando NAO usar**: para calculos triviais. Criar um objeto simples ou concatenar strings nao justifica o overhead cognitivo. Em entrevistas, um sinal de senioridade e dizer: "eu mediria primeiro com o React DevTools Profiler antes de adicionar useMemo". ## useCallback: Estabilizando Referencias de Funcoes `useCallback` retorna uma funcao memorizada. O caso de uso classico e quando voce passa um callback para um componente filho envolto em React.memo — sem useCallback, a funcao e recriada a cada render e o memo do filho nao funciona. **A armadilha**: useCallback sozinho nao evita re-renders. Ele so faz sentido em conjunto com React.memo ou quando a funcao e dependencia de outro useMemo ou useEffect. Usar useCallback indiscriminadamente e um anti-pattern comum. ## Code Splitting e Lazy Loading `React.lazy` e `Suspense` permitem carregar componentes sob demanda: ```typescript const HeavyDashboard = React.lazy(() => import('./HeavyDashboard')); function App() { return ( }> ); } ``` Em entrevistas de Big Tech, esperam que voce saiba quando fazer code splitting: rotas, features que nao sao usadas imediatamente, e dependencias grandes carregadas somente quando necessario. ## Virtualizacao: Listas de Milhares de Itens Nenhuma quantidade de React.memo resolve uma lista de 50.000 itens renderizados no DOM. A solucao e virtualizacao: renderizar apenas os itens visiveis na viewport. `react-window` implementa essa tecnica e aparece frequentemente em system design de interfaces — como voce construiria um feed de noticias infinito, uma tabela com milhares de linhas, ou um chat com historico longo. ## Web Vitals e o Impacto das Otimizacoes React Core Web Vitals (LCP, INP, CLS) sao as metricas que o Google usa para ranquear paginas. **LCP (Largest Contentful Paint)**: code splitting reduz o bundle inicial e melhora LCP. **INP (Interaction to Next Paint)**: handlers lentos e re-renders pesados bloqueiam o thread principal. `useTransition` (React 18) permite marcar atualizacoes de estado como nao-urgentes, mantendo a UI responsiva. **CLS (Cumulative Layout Shift)**: usar skeletons com dimensoes definidas previne layout shifts. Conhecer essas metricas e saber como as tecnicas React as afetam demonstra que voce pensa em produto, nao so em codigo. ## Como Se Preparar para Essas Entrevistas A melhor preparacao e trabalhar em aplicacoes reais com problemas reais de performance. Use o React DevTools Profiler para identificar re-renders desnecessarios. Use o Chrome DevTools Performance tab para identificar long tasks. Plataformas como o **VagaNaGringa.dev** sao uteis para encontrar vagas de frontend senior em empresas internacionais e entender quais tecnologias e niveis de profundidade estao sendo pedidos. ## Conclusao Performance em React nao e sobre memorizar APIs. E sobre ter um modelo mental claro de como o React funciona, saber medir antes de otimizar, e conhecer as ferramentas certas para cada problema. Candidatos que demonstram esse raciocinio em entrevistas se destacam naturalmente em processos seletivos de empresas internacionais.

Prepare-se para vagas internacionais com IA

Começar Gratuitamente
#React#performance#otimizacao#entrevista tecnica#desenvolvedor frontend