Componentes Dinâmicos e Listas em React

Área: Frontend | Nível recomendado: Iniciante

circle-info

Nesta missão, vamos aprofundar no entendimento de como os componentes funcionam em React, explorando o uso de props, o método map para renderização de listas dinâmicas, e a implementação de renderização condicional. A missão é desenhada para reforçar a capacidade de manipular dados complexos e controlar o que é exibido na interface do usuário, utilizando conceitos fundamentais de JavaScript.

Vídeo

Link direto: https://youtu.be/mAXcFzFicdkarrow-up-right

Tópicos

  1. Introdução aos Componentes e Props:

    • Discussão sobre como os componentes permitem a reutilização de código e a modularização em React.

    • Explicação detalhada sobre como usar props para passar dados e eventos entre componentes.

  2. Introdução ao Flexbox para Layouts Responsivos:

    • Introdução básica ao Flexbox, recomendando o jogo Flexbox Froggy como recurso interativo para aprendizagem.

    • Aplicação prática de Flexbox para arranjar múltiplos cards dentro de um contêiner, demonstrando o layout responsivo.

  3. JavaScript e React: Manipulação de Arrays e Objetos:

    • Revisão sobre arrays e objetos em JavaScript, mostrando como essas estruturas são essenciais para gerenciar dados dentro dos componentes.

    • Demonstração de como transformar dados de array em componentes usando o método map.

  4. Renderização Condicional em Componentes:

    • Introdução à renderização condicional em React, usando operadores como && e ternário ?: para criar interfaces que respondem a diferentes estados ou condições.

    • Exemplos práticos de como aplicar renderização condicional para melhorar a experiência do usuário.

  5. Prática com Listas Dinâmicas e Renderização Condicional:

    • Criação de uma lista de componentes que são renderizados dinamicamente a partir de um array de dados.

    • Implementação de condições dentro da renderização para tratar listas vazias ou critérios específicos.

Material de Apoio

Repositório no GitHub

PDF para Download

Miro

Exercícios de Fixação

circle-info

Use esses exercícios para reforçar o que acabou de aprender. Se errar, leia a explicação para entender melhor o conceito.

chevron-rightQual é a função principal dos props em um componente React?hashtag

A) Definir o estado inicial do componente.

B) Passar dados e eventos para o componente.

C) Estilizar o componente.

D) Criar novos elementos DOM.

chevron-rightResposta corretahashtag

Qual é a função principal dos props em um componente React?

Resposta Correta: B

Feedback: Os props são usados para passar dados e eventos para os componentes filhos, permitindo que esses componentes sejam reutilizáveis e dinâmicos.


chevron-rightComplete o código para que o componente Card exiba o título e o conteúdo passados como props.hashtag
chevron-rightResposta corretahashtag

Complete o código para que o componente Card exiba o título e o conteúdo passados como props.

Resposta Correta:

Feedback: O componente Card utiliza props.title e props.content para exibir o título e o conteúdo passados como propriedades.


chevron-rightAfirmativa: O Flexbox é utilizado para criar layouts bidimensionais em CSS.hashtag

A) Verdadeiro

B) Falso

chevron-rightResposta corretahashtag

Afirmativa: O Flexbox é utilizado para criar layouts bidimensionais em CSS.

Resposta Correta: B

Feedback: Falso. O Flexbox é utilizado para criar layouts unidimensionais (linha ou coluna) em CSS. Para layouts bidimensionais, utiliza-se o CSS Grid.


chevron-rightQual método usamos para adicionar um novo item ao final de um array em JavaScript?hashtag

A) pop()

B) shift()

C) push()

D) unshift()

chevron-rightResposta corretahashtag

Qual método usamos para adicionar um novo item ao final de um array em JavaScript?

Resposta Correta: C

Feedback: O método push() é utilizado para adicionar um novo item ao final de um array em JavaScript.


chevron-rightComplete o código para criar uma lista de componentes `Card` a partir de um array de dados usando o método `map`.hashtag
chevron-rightResposta corretahashtag

Complete o código para criar uma lista de componentes Card a partir de um array de dados usando o método map.

Resposta Correta:

Feedback: O método map é utilizado para transformar cada item do array items em um componente Card, passando os dados apropriados como props.

Exercícios de Validação

circle-info

Esses exercícios testarão sua compreensão prática. Revise o feedback para melhorar suas habilidades.

Desafio de Código

Adicione funcionalidade ao componente Card para que ele exiba uma mensagem "Este item não evolui" quando a propriedade evoluiPara for null ou undefined.

  • Implemente a renderização condicional no componente Card.

chevron-rightResposta esperadahashtag

Feedback: A renderização condicional é usada para exibir uma mensagem específica quando props.item.evoluiPara não está definido, melhorando a clareza da interface para o usuário.

Revisão de Código

triangle-exclamation
chevron-rightResposta Corretahashtag

Erros:

  • Exportação do componente Card e importação no componente App está faltando.

  • O componente Card não está utilizando props.item para acessar as propriedades corretamente.

Feedback: A propriedade image deve ser incluída no objeto items e passada como props para o componente Card.

Projeto Prático

Crie uma aplicação React que renderize uma lista de produtos em promoção. A lista de produtos deve ser armazenada em um estado e passada para os componentes filhos como props. Além disso, implemente a funcionalidade para exibir o preço antigo e o novo preço com desconto. Se o produto não estiver em promoção, exiba uma mensagem "Produto não está em promoção".

Tarefas

  1. Criação do Projeto:

    • Inicialize um novo projeto React.

    • Crie um componente ProductCard que receba props e exiba o nome, a imagem, o preço antigo e o novo preço com desconto de um produto.

  2. Implementação da Lista:

    • Crie um componente App que armazene a lista de produtos no estado e use o método map para renderizar os cards.

  3. Renderização Condicional:

    • Adicione renderização condicional para exibir a mensagem "Produto não está em promoção" se o produto não tiver desconto.

chevron-rightCódigo esperadohashtag

Feedback Detalhado

  • Renderização de Listas: Utilize o método map para renderizar uma lista de produtos dinamicamente.

  • Props: Passe dados para componentes filhos usando props e acesse esses dados corretamente dentro dos componentes.

  • Renderização Condicional: Use renderização condicional para exibir diferentes conteúdos com base no estado dos dados (por exemplo, se o produto está em promoção ou não).

  • Estilização com CSS: Estilize os componentes para melhorar a apresentação visual, aplicando estilos básicos de CSS e utilizando Flexbox para o layout.

Last updated