Questão de Programação — Frameworks em Programação — Quadrix 2024
- Código
- qg347315
- Banca
- Quadrix
- Órgão
- CFP
- Ano
- 2024
- Nível
- Superior
- Cargo
- Analista Técnico/TI/Desenvolvimento
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: E — ERRADO. A afirmação está incorreta porque a sintaxe apresentada para criação de componente no Vue.js contém um erro: a propriedade data deve ser uma função que retorna um objeto, e não um objeto diretamente. A forma correta seria data() { return { message: 'Atenção Psicólogos!' }; } — que é exatamente o que o enunciado mostra, mas a questão afirma que essa é a sintaxe "completa" e correta, o que não procede, pois falta a definição do template ou render para o componente ser completo. A banca explora a confusão entre a sintaxe de criação de componente e a necessidade de um template para que ele seja renderizável.
O Vue.js é um framework JavaScript progressivo para construção de interfaces de usuário. Ele adota o padrão MVVM (Model-View-ViewModel), uma variação do MVC, onde o ViewModel é a camada que liga a View (DOM) ao Model (dados). A criação de componentes é um dos conceitos centrais do Vue, permitindo a reutilização de código e a organização da aplicação em blocos independentes.
A sintaxe para criar um componente global no Vue.js 2.x é Vue.component('nome-do-componente', { opções }). As opções incluem data, template, methods, computed, entre outras. O ponto crucial é que data deve ser uma função que retorna um objeto, para que cada instância do componente tenha seu próprio estado isolado. Se data fosse um objeto simples, todas as instâncias compartilhariam o mesmo estado, causando bugs.
No exemplo dado, data() { return { message: 'Atenção Psicólogos!' }; } está correto como definição de data. No entanto, o componente está incompleto porque não possui um template (ou render). Sem um template, o componente não sabe o que renderizar no DOM. A sintaxe "completa" exigiria, no mínimo, um template, como:
Vue.component('my-component', {
data() { return { message: 'Atenção Psicólogos!' }; },
template: '<p>{{ message }}</p>'
});Assim, a afirmação do enunciado é falsa porque apresenta um componente sem template, o que não é uma definição completa e funcional. A banca explora a pegadinha de considerar apenas a parte de data como suficiente, ignorando a necessidade do template.
A banca induz ao erro ao apresentar um componente com data corretamente definido como função, mas sem template. O candidato desatento pode achar que a sintaxe está completa, mas falta o template para o componente renderizar. Lembre-se: um componente Vue precisa de data (função) e template (ou render) para ser completo.
A afirmação está errada porque a sintaxe apresentada não é a "sintaxe completa" para criação de um componente no Vue.js. Embora a definição de data como função esteja correta, falta o template (ou render), que é essencial para o componente renderizar conteúdo. Sem template, o componente não tem o que exibir, tornando a definição incompleta e não funcional.
Gabarito: E — ERRADO.
Link permanente: /questoes/qg347315