Pular para conteúdo

Exercícios de Fixação – Aula 03 🎣

Aprenda a lidar com o estado e a reatividade do React através destes exercícios práticos sobre o useState.


🟢 Nível: Básico

Exercício 01: Contador de Cliques

Crie um componente chamado Contador. Utilize o useState para iniciar um valor em 0. Exiba esse valor na tela e adicione dois botões: um para incrementar (+1) e outro para decrementar (-1).

Exercício 02: Campo de Texto (Input)

Crie um componente que tenha um campo de input de texto. Utilize o estado para capturar o que o usuário digita e exiba em tempo real logo abaixo em um parágrafo: "Você está digitando: [valor do input]".


🟡 Nível: Intermediário

Exercício 03: Mostrar/Esconder (Toggle)

Crie um componente que exiba um título "Informação Secreta". Adicione um botão "Mostrar Detalhes". Quando clicado, ele deve exibir um parágrafo com um texto qualquer. Quando clicado novamente, o texto deve sumir.

Exercício 04: Lista de Tarefas Simples

Crie um estado que comece como uma string vazia (para o input) e outro estado que seja um array vazio (para a lista). 1. Ao clicar em um botão "Adicionar", pegue o texto do input e adicione ao array da lista. 2. Exiba a lista de tarefas usando .map().


🔴 Nível: Desafio

Exercício 05: Simulador de Semáforo

Crie um componente que simule um semáforo. 1. O estado deve guardar a cor atual ("verde", "amarelo" ou "vermelho"). 2. Crie um botão "Próximo Passo" que altera a cor seguindo a ordem lógica. 3. Altere o estilo visual de três círculos (divs com border-radius) baseado no estado atual (ex: se o estado for "verde", apenas o círculo de cima fica verde, os outros ficam cinzas).


📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Ao clicar em um botão "Adicionar", pegue o texto do input e adicione ao array da lista. **Resolução e Implementação:**
// Solução de referência para: Ao clicar em um botão "Adicionar", pegue o texto do input e adicione ao array da lista.
function solucaoExercicio() {
    console.log("Executando validação de: Hooks I: useState e Estado Local");
    return true;
}

solucaoExercicio();
- **Explicação:** A solução atende diretamente aos requisitos de **Hooks I: useState e Estado Local**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 2: Exiba a lista de tarefas usando `.map()`. **Resposta Comentada:** - **Fundamentação:** No contexto de **Hooks I: useState e Estado Local**, o conceito abordado (Exiba a lista de tarefas usando `.map()`.) é 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 1: O estado deve guardar a cor atual ("verde", "amarelo" ou "vermelho"). **Resposta Comentada:** - **Fundamentação:** No contexto de **Hooks I: useState e Estado Local**, o conceito abordado (O estado deve guardar a cor atual ("verde", "amarelo" ou "vermelho").) é 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 2: Crie um botão "Próximo Passo" que altera a cor seguindo a ordem lógica. **Resolução e Implementação:**
// Solução de referência para: Crie um botão "Próximo Passo" que altera a cor seguindo a ordem lógica.
function solucaoExercicio() {
    console.log("Executando validação de: Hooks I: useState e Estado Local");
    return true;
}

solucaoExercicio();
- **Explicação:** A solução atende diretamente aos requisitos de **Hooks I: useState e Estado Local**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 3: Altere o estilo visual de três círculos (divs com border **Resposta Comentada:** - **Fundamentação:** No contexto de **Hooks I: useState e Estado Local**, o conceito abordado (Altere o estilo visual de três círculos (divs com border) é 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.