Questão de Programação — Programação de front end — FGV 2025
Programação›Programação de front end
Código
fg107887
Banca
FGV
Órgão
CPRM
Ano
2025
Nível
Superior
Cargo
Analista em Geociências - Geoprocessamento
Em relação aos efeitos colaterais e ao ciclo de vida dos componentes funcionais no React, considere as afirmativas:I. O hook useEffect pode simular os métodos componentDidMount, componentDidUpdate e componentWillUnmount dependendo da forma como é configurado.II. Hooks como useMemo e useCallback são utilizados para memoização de valores e funções, ajudando a otimizar o re-render.III. Ao utilizar useEffect sem um array de dependências, o efeito será executado uma única vez após a montagem do componente.Está correto o que se afirma em
AI e II, apenas.
BII e III, apenas.
CI e III, apenas.
DI, II e III.
EI, apenas.
Revelar gabarito e comentário▾
GabaritoD — I, II e III.
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: useEffect, useMemo, useCallback
Gabarito: letra D (I, II e III). Todas as afirmativas estão corretas. O hook useEffect pode simular os métodos de ciclo de vida de classes (componentDidMount, componentDidUpdate e componentWillUnmount) conforme a configuração. useMemo e useCallback são hooks de memoização que otimizam o re-render. E a afirmativa III, quando interpretada como "useEffect com array de dependências vazio", está correta: ele executa uma única vez após a montagem.
Análise das afirmativas
I — ✅ Correta
O useEffect com array de dependências vazio ([]) executa apenas na montagem, simulando componentDidMount. Com dependências preenchidas, executa na montagem e sempre que alguma dependência mudar, simulando componentDidUpdate. A função de cleanup retornada pelo useEffect simula o componentWillUnmount. Portanto, a afirmativa está correta.
II — ✅ Correta
useMemo memoiza o valor de uma computação dispendiosa, recalculando-o apenas quando as dependências mudam. useCallback memoiza uma função, evitando que ela seja recriada a cada renderização desnecessariamente. Ambos ajudam a evitar re-renders desnecessários e otimizam a performance.
III — ✅ Correta (interpretação da banca)
Embora na documentação oficial do React o useEffectsem array de dependências execute após cada renderização (montagem e atualizações), a expressão "sem um array de dependências" é frequentemente usada coloquialmente para indicar array vazio ([]), que de fato executa uma única vez após a montagem. A banca adotou essa interpretação, tornando a afirmativa verdadeira. Portanto, para esta questão, III está correta.
NÃO CAIA NESSA!
A banca explora a ambiguidade entre "sem array de dependências" (nenhum array) e "com array vazio" (sem dependências). Na prática, o comportamento é diferente, mas o gabarito oficial considerou a primeira leitura. Fique atento ao contexto da questão: se o enunciado diz "sem array de dependências", verifique se a banca entende como array vazio.
Gabarito: letra D — todas as afirmativas estão corretas.