Questão de Programação — Programação de front end — Quadrix 2025
Programação›Programação de front end
Código
qg595600
Banca
Quadrix
Órgão
CORE-SP
Ano
2025
Nível
Superior
Cargo
Analista de Tecnologia da Informação
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.
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▾
GabaritoA — utiliza o virtual DOM, que otimiza atualizações e evita manipulações diretas no DOM real.
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 não deve ser manipulado diretamente no DOM real porque ele utiliza o Virtual DOM, uma representação em memória da interface que otimiza as atualizações, aplicando no DOM real apenas as mudanças necessárias — é exatamente isso que a alternativa A afirma. Essa é a essência do framework: abstrair a manipulação manual do DOM para ganhar performance e previsibilidade.
O Virtual DOM é uma cópia virtual da árvore de elementos da interface, mantida em memória e sincronizada com o DOM real. Quando o estado de um componente muda, o React cria uma nova árvore virtual, compara com a anterior (algoritmo de diffing) e calcula o menor conjunto de alterações necessário. Só então ele aplica essas alterações no DOM real. Isso evita que o desenvolvedor precise fazer manipulações manuais como document.getElementById(...).innerHTML = ..., que são custosas e propensas a erros.
Na prática, quando você escreve <div>Olá</div> em JSX, o React transforma isso em objetos JavaScript que representam a UI. Ao renderizar, ele monta a árvore virtual e a sincroniza com o DOM real. Se um dado muda, o React refaz a árvore virtual, compara com a anterior e atualiza apenas os nós que realmente mudaram. É por isso que o React é declarativo: você descreve como a UI deve ficar em cada estado, e o framework cuida de como aplicar isso no DOM.
A pegadinha da banca está em confundir o Virtual DOM com o DOM real, ou em atribuir ao React características que ele não tem (como proibir interação com HTML, recriar todo o DOM a cada render, exigir multithreading ou rodar apenas no servidor). O React não proíbe manipular o DOM — ele apenas abstrai e otimiza essa manipulação. E ele roda no navegador (client-side), embora também possa ser renderizado no servidor (SSR) em configurações específicas.
Guarde a distinção central: Virtual DOM = representação em memória, usada para calcular mudanças; DOM real = árvore de elementos do navegador, que o React atualiza de forma otimizada. É nessa fronteira que as alternativas se dividem.
React e o DOM
1Virtual DOM
Representação em memória
Algoritmo de diffing
Aplica só as mudanças necessárias
2DOM real
Árvore de elementos do navegador
Atualizado de forma otimizada
3Características
Declarativo (descreve como a UI deve ficar)
Roda no navegador (client-side)
Permite SSR em configurações específicas
Componentes reutilizáveis (props e state)
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa A está correta porque descreve com precisão o funcionamento do React: ele utiliza o Virtual DOM, que otimiza as atualizações e evita manipulações diretas no DOM real. O Virtual DOM é uma abstração que permite ao React calcular as diferenças entre o estado anterior e o novo, aplicando apenas as mudanças necessárias no DOM real. Isso é o núcleo do framework e o motivo pelo qual o desenvolvedor não deve manipular o DOM diretamente.
Alternativa B — ❌ Incorreta
A alternativa B está incorreta porque o React não proíbe qualquer interação com elementos HTML. Ele permite, sim, que você acesse o DOM real quando necessário (por exemplo, via refs ou document.querySelector), mas desencoraja a manipulação direta porque isso contorna o mecanismo de reconciliação e pode causar inconsistências. A palavra "proíbe" é exagerada e falsa.
Alternativa C — ❌ Incorreta
A alternativa C está incorreta porque o React não exige que todo o DOM seja recriado a cada renderização. Pelo contrário, o Virtual DOM e o algoritmo de diffing existem justamente para evitar a recriação completa, atualizando apenas os nós que mudaram. Recriar tudo seria ineficiente e anularia a vantagem do framework.
Alternativa D — ❌ Incorreta
A alternativa D está incorreta porque a reutilização de componentes no React não depende de multithreading. Componentes reutilizáveis são uma característica fundamental do React, baseada em props e state, e funcionam em qualquer ambiente JavaScript, independentemente de threads. Multithreading é um conceito de concorrência que não tem relação com a reutilização de componentes.
Alternativa E — ❌ Incorreta
A alternativa E está incorreta porque o React executa no navegador (client-side), e não apenas no servidor. Embora exista renderização no servidor (SSR) para melhorar SEO e performance inicial, o React é essencialmente uma biblioteca front-end que roda no cliente. A afirmação de que executa "apenas no servidor" é falsa.
NÃO CAIA NESSA!
A banca adora inverter o papel do Virtual DOM e atribuir ao React limitações que ele não tem. Aqui, a pegadinha está em alternativas como B ("proíbe"), C ("recriado a cada render") e E ("apenas no servidor") — todas exageram ou invertem características reais. Lembre-se: o React abstrai a manipulação do DOM, não a proíbe; ele otimiza as atualizações, não as recria; e ele roda no navegador, não só no servidor. Com treino, você enxerga essas trocas de longe 💪