ANÚNCIO

~/questoes/programacao

Qual é o papel do useEffect em uma To Do List?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Aula de referência PROJETO de React JS para INICIANTES – Faça uma To Do List do zero!
Para fixar

O Papel do useEffect em uma To Do List

Conceito central

O useEffect é um hook do React que executa efeitos colaterais na aplicação, como sincronizar dados, fazer chamadas a APIs ou salvar informações no localStorage. Em uma To Do List, ele garante que suas tarefas sejam persistidas e sincronizadas com o restante da aplicação quando o estado muda.

Por que essa resposta faz sentido

A alternativa D está correta porque useEffect existe justamente para lidar com efeitos colaterais e sincronizações. Em uma To Do List, você o usa para salvar tarefas no localStorage, atualizar dados quando a lista muda, ou sincronizar informações entre componentes, sem interferir diretamente na renderização.

Armadilhas comuns

  • Confundir useEffect com a renderização do componente: o useEffect executa APÓS o componente renderizar, não durante.
  • Tentar fazer validações de formulário dentro do useEffect em vez de usar manipuladores de evento como onChange.
  • Esquecer de adicionar o array de dependências, causando o useEffect executar infinitamente e consumir muitos recursos.

Entenda as alternativas

A

Renderizar elementos visuais é responsabilidade do componente React em si e do método render/return, não do useEffect. O useEffect executa após a renderização acontecer, não durante ela.

B

Validação de dados do usuário é tipicamente feita em funções de manipulação de eventos (como onChange ou onSubmit), não no useEffect. O useEffect não é o lugar apropriado para validações de entrada de formulário.

C

Conversão de dados de formulário é uma transformação lógica que ocorre nas funções manipuladoras de eventos ou utilitários, não no useEffect. Esse hook não é projetado para transformações de dados antes da renderização.

D

useEffect é perfeito para efeitos colaterais como salvar tarefas no localStorage quando a lista muda, sincronizar dados com um servidor, ou atualizar o título da página. Ele executa após a renderização, permitindo ações que afetam o mundo externo.

Dica prática: Em sua To Do List, use useEffect com o array de dependências [tasks] para salvar as tarefas no localStorage sempre que a lista mudar. Exemplo: `useEffect(() => { localStorage.setItem('tasks', JSON.stringify(tasks)); }, [tasks])`

Revise pensando: Se você quisesse carregar as tarefas salvas no localStorage quando a página carrega, como você usaria o useEffect? O array de dependências seria vazio ou teria algum valor?