Questão de TI - Desenvolvimento de Sistemas — React.js — Quadrix 2025
TI - Desenvolvimento de Sistemas›React.js
Código
qa699758
Banca
Quadrix
Órgão
CORE SP
Ano
2025
Cargo
Ana TI ( )
Uma empresa está desenvolvendo um sistema de gestão
para certo representante comercial. O projeto adota
práticas ágeis e utiliza o framework React no front‑end,
integrando‑se a uma API construída em Node.js. Durante
o desenvolvimento, um dos desenvolvedores do time de
front‑end alterou componentes da interface diretamente
no código principal do repositório remoto. As modificações
causaram conflitos e comprometeram partes da aplicação
que estavam sendo testadas por outros membros da
equipe. Além disso, esse desenvolvedor teve dificuldades
para entender a estrutura do React, tentando manipular o
DOM diretamente, em vez de adotar outras estratégias.
Texto para a questão Com base nessa situação hipotética, o desenvolvedor não deveria manipular o DOM diretamente uma aplicação React, pois esse framework
Autiliza o virtual DOM, que otimiza atualizações e evita manipulações diretas no DOM real.
Bproíbe qualquer interação com elementos HTML.
Cexige que todo o DOM seja recriado a cada renderização.
Dsuporta a criação de componentes reutilizáveis apenas em aplicações de multithreading.
Eexecuta o código apenas no servidor e não no navegador.
Revelar gabarito e comentário▾
GabaritoD — suporta a criação de componentes reutilizáveis apenas em aplicações de multithreading.
Esta resolução diverge do gabarito oficial. A banca deu Letra D; a resolução abaixo sustenta o contrário e explica por quê — ela não foi reescrita para concordar. Acontece nos dois sentidos: há gabarito que cai em recurso e há resolução que erra. Confira na fonte antes de fixar o entendimento.
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 e o Virtual DOM
Gabarito: letra A. O React utiliza o virtual DOM, uma representação em memória da interface, que otimiza as atualizações e evita a necessidade de manipulações diretas no DOM real — é exatamente por isso que o desenvolvedor não deveria manipular o DOM diretamente. Essa é a essência do modelo declarativo do React, que contrasta com a manipulação imperativa do DOM tradicional.
O DOM (Document Object Model) é a representação em árvore dos elementos HTML de uma página, que o navegador expõe para que scripts possam ler e alterar a estrutura, o conteúdo e o estilo da página. Manipular o DOM diretamente, como o desenvolvedor do enunciado tentou fazer, é uma abordagem imperativa: você diz ao navegador exatamente o que fazer, passo a passo (por exemplo, document.getElementById('x').innerHTML = '...'). Esse tipo de manipulação é propensa a erros, difícil de manter e pode causar problemas de desempenho, pois cada alteração pode disparar recálculos de layout e repinturas na página.
O React adota uma abordagem declarativa: você descreve como a interface deve ficar em um determinado estado, e o framework se encarrega de atualizar o DOM para refletir essa descrição. Para isso, o React mantém uma representação virtual da árvore de componentes — o virtual DOM. Quando o estado de um componente muda, o React cria uma nova árvore virtual, compara com a anterior (processo chamado de reconciliação ou diffing) e calcula a menor quantidade de alterações necessárias no DOM real, aplicando-as de forma eficiente. É por isso que a alternativa A está correta: o virtual DOM otimiza as atualizações e evita manipulações diretas no DOM real.
A alternativa D, apontada como gabarito oficial, está incorreta porque afirma que o React suporta a criação de componentes reutilizáveis apenas em aplicações de multithreading — o que é falso. O React suporta componentes reutilizáveis em qualquer aplicação, independentemente de multithreading, que é um conceito de concorrência e não tem relação com a reutilização de componentes. A banca provavelmente tentou confundir o candidato com um termo técnico (multithreading) que não se aplica ao contexto do React.
NÃO CAIA NESSA!
A banca troca o conceito de virtual DOM (que é a razão de não manipular o DOM diretamente) por uma afirmação absurda sobre multithreading (alternativa D). O candidato que sabe o básico do React identifica a alternativa A como correta, mas o gabarito oficial marca D — uma pegadinha que testa se você conhece o conceito e não se deixa enganar por termos técnicos fora de contexto. Fique atento: o React não tem relação com multithreading; ele é single-threaded por padrão, e a reutilização de componentes é uma característica independente.
React e o DOM: DOM real (Manipulação imperativa, Propenso a erros, Problemas de desempenho); Virtual DOM (Abordagem declarativa, Reconciliação (diffing), Menor quantidade de alterações, Evita manipulação direta); Características (Componentes reutilizáveis (qualquer app), Roda no navegador (client-side), Não recria todo o DOM, Não proíbe interação (refs))
Alternativa A — ✅ Correta
A alternativa A afirma que o React "utiliza o virtual DOM, que otimiza atualizações e evita manipulações diretas no DOM real". Isso está correto e é exatamente o motivo pelo qual o desenvolvedor não deveria manipular o DOM diretamente. O virtual DOM é uma representação em memória da interface, e o React o utiliza para calcular a menor quantidade de alterações necessárias no DOM real, otimizando o desempenho. Essa é a essência do modelo declarativo do React.
Alternativa B — ❌ Incorreta
A alternativa B afirma que o React "proíbe qualquer interação com elementos HTML". Isso é falso. O React não proíbe a interação com elementos HTML; ele apenas desencoraja a manipulação direta do DOM, mas permite o uso de refs e outras técnicas para acessar elementos quando necessário. A palavra "proíbe" é exagerada e incorreta.
Alternativa C — ❌ Incorreta
A alternativa C afirma que o React "exige que todo o DOM seja recriado a cada renderização". Isso é falso. O React não recria todo o DOM a cada renderização; ele utiliza o virtual DOM para calcular as diferenças e aplicar apenas as alterações necessárias. Recriar todo o DOM seria ineficiente e contrário ao propósito do virtual DOM.
Alternativa D — ❌ Incorreta
A alternativa D afirma que o React "suporta a criação de componentes reutilizáveis apenas em aplicações de multithreading". Isso é falso. O React suporta componentes reutilizáveis em qualquer aplicação, independentemente de multithreading. O termo "multithreading" é um conceito de concorrência que não tem relação com a reutilização de componentes no React. Esta é a alternativa marcada como gabarito oficial, mas está incorreta.
Alternativa E — ❌ Incorreta
A alternativa E afirma que o React "executa o código apenas no servidor e não no navegador". Isso é falso. O React é uma biblioteca JavaScript que roda no navegador (client-side). Embora exista o React Native para aplicações móveis e o Next.js para renderização no servidor, o React em si é executado no navegador. A afirmação de que executa "apenas no servidor" é incorreta.
Gabarito: letra A — a alternativa correta é a letra A, pois o React utiliza o virtual DOM para otimizar atualizações e evitar manipulações diretas no DOM real. As demais alternativas estão incorretas por apresentarem afirmações falsas sobre o React.