Questão de Programação — Frameworks Java — Avança SP 2024
- Código
- qg082371
- Banca
- Avança SP
- Órgão
- Prefeitura de Americana - SP
- Ano
- 2024
- Nível
- Superior
- Cargo
- Analista Programador de Sistemas
- ADOMReact.
- BReactDOM.
- CDOM
- DDOMPrincipal
- EVirtualDOM
GabaritoE — VirtualDOM
Gabarito: letra E. O conceito descrito no enunciado — uma representação "virtual" da interface do usuário mantida em memória e sincronizada com o DOM real por uma biblioteca como o ReactDOM — é exatamente o Virtual DOM (DOM virtual). É o mecanismo central do React para otimizar atualizações de interface, permitindo que apenas as partes modificadas sejam alteradas no DOM real.
O Virtual DOM é uma abstração criada pelo React para resolver um problema de performance: manipular diretamente o DOM do navegador é uma operação cara e lenta. Em vez de atualizar o DOM real a cada mudança de estado, o React mantém uma cópia virtual da árvore de elementos em memória. Quando o estado de um componente muda, uma nova árvore virtual é criada e comparada com a anterior por meio do algoritmo de diffing. Essa comparação identifica exatamente quais elementos precisam ser atualizados, e só então o React aplica essas mudanças mínimas no DOM real, por meio do ReactDOM.
Na prática, o fluxo funciona assim: o componente retorna uma árvore de elementos (descrita em JSX), o React constrói a Virtual DOM correspondente, e o ReactDOM renderiza essa árvore no navegador. Quando algo muda (por exemplo, o usuário clica em um botão e o estado é atualizado), o React cria uma nova Virtual DOM, compara com a anterior usando o algoritmo de diffing, calcula o menor conjunto de operações necessárias e as aplica no DOM real. Isso evita recarregar ou reconstruir toda a página, tornando a interface muito mais rápida e responsiva.
É importante distinguir o Virtual DOM de outros conceitos relacionados. O DOM (Document Object Model) é a representação real da página no navegador, uma árvore de objetos que o JavaScript manipula diretamente. O ReactDOM é a biblioteca responsável por fazer a ponte entre o React e o DOM real — é ela que renderiza os componentes e aplica as atualizações. O Virtual DOM, por sua vez, é a representação em memória que o React usa para otimizar esse processo. A pegadinha da banca está justamente em confundir o Virtual DOM com o ReactDOM: o enunciado descreve a representação virtual (Virtual DOM), não a biblioteca que sincroniza (ReactDOM).
Guarde essa distinção: Virtual DOM é o conceito (a representação em memória), ReactDOM é a ferramenta (a biblioteca que sincroniza com o DOM real). É exatamente nessa fronteira que as alternativas se dividem.
DOMReact não é um termo técnico reconhecido no ecossistema React. Não existe uma biblioteca ou conceito com esse nome. A banca criou um distrator que mistura os nomes "DOM" e "React" de forma aleatória, sem correspondência com a realidade.
ReactDOM é a biblioteca que sincroniza a Virtual DOM com o DOM real, mas não é a representação virtual em si. O enunciado descreve a representação ideal mantida em memória — isso é o Virtual DOM. O ReactDOM é a ferramenta que faz a ponte, não o conceito descrito.
DOM é a representação real da página no navegador, a árvore de objetos que o JavaScript manipula. O enunciado fala de uma representação "virtual" mantida em memória, que é diferente do DOM real. O DOM é o alvo da sincronização, não a representação virtual.
DOMPrincipal não é um termo técnico do React. Não existe esse conceito na documentação oficial nem na prática de desenvolvimento. É um distrator inventado pela banca para confundir o candidato.
Virtual DOM é exatamente o conceito descrito: uma representação virtual da interface do usuário mantida em memória e sincronizada com o DOM real pelo ReactDOM. O React usa essa abstração para otimizar atualizações, aplicando apenas as mudanças mínimas no DOM real.
Para não confundir na prova, lembre-se: Virtual DOM é o conceito (a representação em memória), ReactDOM é a ferramenta (a biblioteca que sincroniza). O enunciado descreve o conceito, então a resposta é Virtual DOM. Se a questão perguntasse "qual biblioteca sincroniza a Virtual DOM com o DOM real?", aí sim seria ReactDOM.
Gabarito: letra E
Link permanente: /questoes/qg082371