Questão de Programação — Frameworks em Programação — Quadrix 2024
- Código
- qg354227
- Banca
- Quadrix
- Órgão
- IBICT
- Ano
- 2024
- Nível
- Superior
- Cargo
- Tecnologista - Tecnologia da Informação
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: C — CERTO. A afirmação está correta porque o Two-Way Data Binding é, de fato, uma característica do Angular (incluindo o AngularJS, versão 1) que sincroniza automaticamente o modelo (dados) e a visualização (interface), refletindo alterações em ambos os sentidos sem a necessidade de código manual de sincronização. Essa é a definição clássica do conceito, amplamente documentada na documentação oficial do Angular.
O Two-Way Data Binding é um dos pilares do AngularJS (versão 1) e continua presente, com adaptações, nas versões modernas do Angular (2+). Ele se baseia na combinação de duas ligações unidirecionais: a property binding (do modelo para a view) e a event binding (da view para o modelo). No AngularJS, isso é feito através da diretiva ng-model, que estabelece a sincronização bidirecional entre o valor de um elemento de formulário (como um input) e uma variável no escopo do controlador. Quando o usuário digita em um campo, o modelo é atualizado automaticamente; quando o modelo é alterado programaticamente, a interface é atualizada na hora. Essa mágica é possível graças ao mecanismo de dirty checking e ao digest cycle, que monitoram as mudanças e propagam as atualizações.
Na prática, imagine um campo de texto para o nome do usuário. Com ng-model="nome", qualquer alteração digitada no campo atualiza a variável nome no escopo, e qualquer alteração em nome (por exemplo, via código) atualiza o campo na tela. Isso elimina a necessidade de escrever listeners de eventos e manipulações manuais do DOM, que seriam necessárias em JavaScript puro ou em outras bibliotecas que não oferecem esse recurso nativamente.
É importante distinguir o Two-Way Data Binding de outras abordagens. No React, por exemplo, o fluxo de dados é unidirecional: o estado é passado para os componentes via props, e as alterações são propagadas através de callbacks (como onChange). O Vue.js também oferece v-model, que é uma sintaxe semelhante ao ng-model do AngularJS. O Two-Way Data Binding é uma característica que facilita o desenvolvimento, mas pode trazer complexidade em aplicações grandes, pois o fluxo de dados fica menos previsível. Por isso, o Angular moderno (2+) incentiva o uso de fluxo unidirecional com [(ngModel)] apenas em casos específicos, mas o conceito permanece o mesmo.
A banca explora aqui um conceito fundamental e bem definido. A pegadinha, se houvesse, seria confundir o Two-Way Data Binding com o One-Way Data Binding (que é unidirecional) ou com a simples atualização manual do DOM. Mas a afirmação é precisa e descreve exatamente o que o recurso faz. Portanto, a assertiva está correta.
A afirmação descreve corretamente o Two-Way Data Binding: as alterações no modelo atualizam a visualização e vice-versa, automaticamente, sem código manual de sincronização. Isso é exatamente o que o recurso faz no Angular (e no AngularJS). A diretiva ng-model no AngularJS e a sintaxe [(ngModel)] no Angular 2+ implementam essa sincronização bidirecional. Não há erro na definição apresentada.
Gabarito: C — CERTO.
Link permanente: /questoes/qg354227