Pular para o conteúdo principal

Questão de Programação — Web — FGV 2023

ProgramaçãoWeb
Código
fg072581
Banca
FGV
Órgão
TJ-SE
Ano
2023
Nível
Superior
Cargo
Analista Judiciário - Especialidade - Análise de Sistemas
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:
  1. AuseState;
  2. BuseEffect;
  3. CuseMemo;
  4. DuseCalback;
  5. EuseContext.
Revelar gabarito e comentário

GabaritoD — useCalback;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

React Hooks: useCallback

Gabarito: letra D. O hook useCallback é o único que memoriza a definição de uma função entre renderizações, evitando recriações desnecessárias e reduzindo o custo computacional de renderização. José encapsulou funções do componente TelaD nesse hook exatamente para essa finalidade.

Alternativa A — ❌ Incorreta

useState gerencia estado em componentes funcionais, mas não memoriza funções. Seu propósito é armazenar e atualizar dados que persistem entre renderizações.

Alternativa B — ❌ Incorreta

useEffect lida com efeitos colaterais (requisições, subscrições, manipulações manuais do DOM), não memoriza definições de funções.

Alternativa C — ❌ Incorreta

useMemo memoriza o valor retornado por uma função (o resultado de uma computação), não a própria definição da função. Embora possa armazenar uma função como valor, não é voltado para evitar recriação de callbacks.

Alternativa D — ✅ Correta ⟵ GABARITO

useCallback recebe uma função e um array de dependências, retornando a mesma instância da função enquanto as dependências não mudarem. Isso impede que a função seja recriada a cada render, o que otimiza componentes que dependem de identidade de funções para evitar re-renderizações desnecessárias.

Alternativa E — ❌ Incorreta

useContext permite acessar valores de contexto (dados compartilhados na árvore de componentes). Não tem relação com memorização de funções.

PEGA ESSA DICA!

Para diferenciar useMemo e useCallback: ambos aceitam dependências e evitam trabalho repetido. useMemo retorna um valor computado; useCallback retorna uma função. Se a intenção é evitar recriação de uma função, use useCallback. Se é evitar recálculo de um valor, use useMemo.

Gabarito: letra D.

Link permanente: /questoes/fg072581