Pular para conteúdo

Exercícios 13 - Ciclo de Vida e Performance ⏳

🟢 Básicos

  1. Mount: O que acontece quando o código é colocado dentro da função onMount?
  2. Destroy: Em qual momento a função onDestroy é executada?

🟡 Intermediários

  1. Memória: Por que é perigoso deixar um setInterval rodando sem limpá-lo no onDestroy?
  2. Atualização: Diferencie as funções beforeUpdate e afterUpdate. Em que cenário você usaria cada uma?

🔴 Desafio

  1. Relógio com Alarme:
    • Crie um componente que exiba o horário atual (HH:MM:SS) e atualize a cada segundo.
    • Use onMount para iniciar o cronômetro.
    • Adicione uma variável alarme (string no formato HH:MM).
    • Use um bloco reativo $: { ... } para verificar se o horário atual é igual ao alarme. Se for, mostre um alerta na tela.
    • Garanta que o intervalo seja limpo no onDestroy.
    • Como você otimizaria esse componente para que ele não consumisse processamento desnecessário se o usuário mudar de aba? (Pesquise sobre visibilitychange).

📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Mount **Resolução e Implementação:**
// Solução de referência para: Mount
function solucaoExercicio() {
    console.log("Executando validação de: Ciclo de Vida e Performance ⏳");
    return true;
}

solucaoExercicio();
- **Explicação:** A solução atende diretamente aos requisitos de **Ciclo de Vida e Performance ⏳**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 2: Destroy **Resolução e Implementação:**
// Solução de referência para: Destroy
function solucaoExercicio() {
    console.log("Executando validação de: Ciclo de Vida e Performance ⏳");
    return true;
}

solucaoExercicio();
- **Explicação:** A solução atende diretamente aos requisitos de **Ciclo de Vida e Performance ⏳**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 3: Memória **Resposta Comentada:** - **Fundamentação:** No contexto de **Ciclo de Vida e Performance ⏳**, o conceito abordado (Memória) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 4: Atualização **Resposta Comentada:** - **Fundamentação:** No contexto de **Ciclo de Vida e Performance ⏳**, o conceito abordado (Atualização) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 5: Relógio com Alarme **Resposta Comentada:** - **Fundamentação:** No contexto de **Ciclo de Vida e Performance ⏳**, o conceito abordado (Relógio com Alarme) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais.