DevPath · Aprenda a programar ESPTEN

Capstone: um app de tarefas em React

Plano do app: decompor a UI em componentes

Do rascunho à árvore de componentes

Antes de escrever uma única linha de React, é uma boa ideia olhar para a interface e dividi-la em peças. Uma pergunta-guia útil: "quais blocos se repetem e quais blocos têm uma responsabilidade clara?". Cada bloco será um componente.

Nosso mini app é uma lista de tarefas (um clássico, e com razão: exercita props, listas, estado e eventos de uma só vez). Sua tela é assim:

┌─────────────────────────────┐
│  [ digite... ]  [ Adicionar ] │   ← formulário
├─────────────────────────────┤
│  • Comprar pão       [✔][🗑] │   ← uma tarefa
│  • Estudar React     [✔][🗑] │   ← outra tarefa
└─────────────────────────────┘

Ao observá-la, surgem três responsabilidades naturais:

Regra de ouro: o estado vive o mais acima possível, no componente que precisa coordenar. Os filhos (TarefaItem, ListaTarefas) são em sua maioria apresentacionais: recebem dados por props e os desenham.

O modelo de dados

Antes dos componentes, decida como os dados são representados. Uma tarefa é um objeto simples:

// uma tarefa
{ id: 1, texto: "Comprar pão", feita: false }

E a lista completa é um array desses objetos:

const tarefas = [
  { id: 1, texto: "Comprar pão", feita: false },
  { id: 2, texto: "Estudar React", feita: true },
];

O id é importante: ele nos servirá como key ao renderizar a lista e para identificar qual tarefa marcar ou apagar.

Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
O fluxo de dados: estado, eventos e renderização →