🧩 Exercícios: Propriedades Computadas e Observadores
🧩 Exercícios Práticos: Propriedades Computadas e Observadores
Spec Frontend Com Vue • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 04.1 — Propriedade Computada com computed() e Cache Automático
Contexto: Propriedade Computada com computed() e Cache Automático no contexto de Propriedades Computadas e Observadores.
Requisitos de Execução:
- Criar
computed(() => preco * (1 - desconto))que recalcule apenas quando as dependências mudarem.
Resultado Esperado
Preço final com desconto calculado e cacheado.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_04_1_SeuNome - Envie na tarefa:
Atividade Cap 04 - Propriedades Computadas e Observadores
🔑 Gabarito de Código & Solução Comentada
<!-- PrecoCalculado.vue -->
<script setup lang="ts">
import { ref, computed } from 'vue';
const preco = ref<number>(1000);
const desconto = ref<number>(0.1); // 10%
const precoFinal = computed(() => {
return preco.value * (1 - desconto.value);
});
</script>
<template>
<div>Preço com Desconto: R$ {{ precoFinal.toFixed(2) }}</div>
</template>
🔍 Nível 2: Prática
Problema 04.2 — Computed com Getter e Setter Customizados
Contexto: Computed com Getter e Setter Customizados no contexto de Propriedades Computadas e Observadores.
Requisitos de Execução:
- Implementar computed
nomeCompletocomget()retornando nome formatado eset(novo)separando primeiro e último nome.
Resultado Esperado
Setter de computed atualizando as refs de primeiroNome e sobrenome.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_04_2_SeuNome - Envie na tarefa:
Atividade Cap 04 - Propriedades Computadas e Observadores
🔑 Gabarito de Código & Solução Comentada
<!-- NomeCompleto.vue -->
<script setup lang="ts">
import { ref, computed } from 'vue';
const primeiroNome = ref('Carlos');
const sobrenome = ref('Silva');
const nomeCompleto = computed({
get: () => `${primeiroNome.value} ${sobrenome.value}`,
set: (valor: string) => {
const partes = valor.split(' ');
primeiroNome.value = partes[0] || '';
sobrenome.value = partes[1] || '';
}
});
</script>
⚡ Nível 3: Integração
Problema 04.3 — Observador com watch() e Opções { deep: true, immediate: true }
Contexto: Observador com watch() e Opções { deep: true, immediate: true } no contexto de Propriedades Computadas e Observadores.
Requisitos de Execução:
- Observar alterações em objeto complexo de filtros de busca e disparar requisição à API com debounce.
Resultado Esperado
Watcher disparado na inicialização e em mutações profundas.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_04_3_SeuNome - Envie na tarefa:
Atividade Cap 04 - Propriedades Computadas e Observadores
🔑 Gabarito de Código & Solução Comentada
<!-- FiltroWatcher.vue -->
<script setup lang="ts">
import { reactive, watch } from 'vue';
const filtros = reactive({ busca: '', categoriaId: 1 });
watch(filtros, (novosFiltros) => {
console.log('Filtros alterados! Buscando API:', novosFiltros);
}, { deep: true, immediate: true });
</script>
🏆 Nível 4: Desafio Corporativo
Problema 04.4 — Rastreamento Automático de Dependências com watchEffect() e Cleanup
Contexto: Rastreamento Automático de Dependências com watchEffect() e Cleanup no contexto de Propriedades Computadas e Observadores.
Requisitos de Execução:
- Utilizar
watchEffect((onCleanup) => ...)cancelando timeouts anteriores ao digitar rapidamente.
Resultado Esperado
Efeito colateral limpo no cleanup do watchEffect prevenindo race conditions.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_04_4_SeuNome - Envie na tarefa:
Atividade Cap 04 - Propriedades Computadas e Observadores
🔑 Gabarito de Código & Solução Comentada
<!-- WatchEffectCleanup.vue -->
<script setup lang="ts">
import { ref, watchEffect } from 'vue';
const query = ref('');
watchEffect((onCleanup) => {
const timer = setTimeout(() => {
console.log('Buscando:', query.value);
}, 300);
onCleanup(() => clearTimeout(timer));
});
</script>
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |