← Questões de Programação

Programação · FGV · 2023

Questão comentada de Programação

O analista José está implementando a interface gráfica da aplicação web JusticaSE, utilizando a biblioteca JavaScript React. A JusticaSE possui uma tela de dashboard, implementada pelo componente TelaD, que demanda alto custo computacional para ser renderizada. A fim de reduzir o custo de renderização da tela de dashboard, José encapsulou determinadas functions de TelaD em um Hook nativo da biblioteca React. O Hook utilizado por José memoriza a definição de uma function ao longo de várias renderizações de um componente. José utilizou o React Hook:

Gabarito: D

Quando o assunto é React, a ideia central é evitar trabalho desnecessário na renderização. Se um componente pesado, como um dashboard, recria funções a cada render, isso pode gerar custo extra e até disparar re-renderizações em filhos que dependem dessas funções. Para reduzir esse problema, o React oferece um Hook específico para memorizar a referência de uma função entre renderizações. Esse é o papel do useCallback. Ele devolve uma função memorizada, isto é, a mesma referência pode ser reaproveitada enquanto as dependências não mudarem. Na prática, isso ajuda a evitar recriações inúteis de funções e melhora o desempenho em componentes mais caros. Não é um Hook para estado, efeito ou contexto, e sim para preservar a identidade da função. Por isso o gabarito é a alternativa D. A banca descreveu exatamente o comportamento do useCallback: memorizar a definição de uma function ao longo de várias renderizações. É o clássico caso em que a função não precisa ser "novinha em folha" a cada render, então o React economiza esse esforço. Em termos de prova, vale guardar a associação rápida: useState cuida de estado, useEffect cuida de efeitos colaterais, useContext acessa contexto, useMemo memoriza valor calculado e useCallback memoriza função. Se a frase falar em memorizar função, acenda a luz de useCallback.

Continue treinando

Questões relacionadas