Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Renderização de Listas de Dados em React | Componentes Reutilizáveis e Fluxo de Dados
Introdução ao React

bookRenderização de Listas de Dados em React

Ao trabalhar com aplicativos web modernos, é comum renderizar coleções de dados recebidos do backend. Para isso, utilizamos o método map(). Dentro do método map(), empregamos uma função de callback e retornamos JSX para renderizar a saída desejada.

Vamos usar um exemplo para ilustrar como isso funciona. Teremos um componente App que passará a prop toys, um array de objetos. O componente ToyCard utilizará o método map() para renderizar cada brinquedo do array.

// Data from backend
const toysData = [
  { id: "id-1", name: "Rainbow Sparkle Unicorn Plush" },
  { id: "id-2", name: "Jungle Adventure Playset" },
  { id: "id-3", name: "Magical Princess Castle Dollhouse" },
  { id: "id-4", name: "RoboBot Transformer Robot" },
  { id: "id-5", name: "SuperBlast Action Figure" },
];

// Child component
const ToyCard = (props) => (
  <ul>
    {props.toys.map((toy) => (
      <li>{toy.name}</li>
    ))}
  </ul>
);

// Parent component
const App = () => (
  <>
    <ToyCard toys={toysData} />
  </>
);

Nas linhas 13-15, observamos a utilização do método map(). Ele permite iterar por cada item do array, extrair seu valor e gerar uma marcação específica com base nos dados de cada item.

Código completo do aplicativo:

No entanto, se prestarmos atenção ao console, podemos perceber que recebemos o aviso: Each child in a list should have a unique "key" prop..

Key

A key é uma propriedade de string fundamental que deve ser atribuída ao criar elementos dentro de uma coleção.

O React utiliza as keys para garantir uma identidade estável para os elementos em uma coleção. Essas keys permitem que o React identifique quais elementos precisam ser renderizados novamente e recriados quando houver alterações, em vez de recriar toda a coleção. O uso de keys evita a recriação desnecessária de elementos, resultando em melhor desempenho.

Note
Nota

A key deve ser única entre os elementos vizinhos. Ela deve permanecer constante e não mudar com o tempo.

É comumente recomendado utilizar identificadores, como valores de id provenientes dos dados do backend, como props de chave. Essa prática permite que o React identifique e gerencie de forma eficaz elementos individuais dentro de uma coleção.

Vamos corrigir nosso aplicativo anterior utilizando as props de chave para os itens:

// Data from backend
const toysData = [
  { id: "id-1", name: "Rainbow Sparkle Unicorn Plush" },
  { id: "id-2", name: "Jungle Adventure Playset" },
  { id: "id-3", name: "Magical Princess Castle Dollhouse" },
  { id: "id-4", name: "RoboBot Transformer Robot" },
  { id: "id-5", name: "SuperBlast Action Figure" },
];

// Child component
const ToyCard = (props) => (
  <ul>
    {props.toys.map((toy) => (
      <li key={toy.id}>{toy.name}</li>
    ))}
  </ul>
);

// Parent component
const App = () => (
  <>
    <ToyCard toys={toysData} />
  </>
);

Linha 14: a prop key é definida no elemento que será renderizado várias vezes dentro de um array de dados.

Código completo do aplicativo:

1. Qual método é comumente utilizado para renderizar coleções de dados recebidos do backend no React?

2. Por que é importante atribuir uma prop key aos elementos dentro de uma coleção no React?

3. Qual deve ser o valor da propriedade key para garantir uma identidade estável para os elementos dentro de uma coleção?

question mark

Qual método é comumente utilizado para renderizar coleções de dados recebidos do backend no React?

Select the correct answer

question mark

Por que é importante atribuir uma prop key aos elementos dentro de uma coleção no React?

Select the correct answer

question mark

Qual deve ser o valor da propriedade key para garantir uma identidade estável para os elementos dentro de uma coleção?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 6

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

bookRenderização de Listas de Dados em React

Deslize para mostrar o menu

Ao trabalhar com aplicativos web modernos, é comum renderizar coleções de dados recebidos do backend. Para isso, utilizamos o método map(). Dentro do método map(), empregamos uma função de callback e retornamos JSX para renderizar a saída desejada.

Vamos usar um exemplo para ilustrar como isso funciona. Teremos um componente App que passará a prop toys, um array de objetos. O componente ToyCard utilizará o método map() para renderizar cada brinquedo do array.

// Data from backend
const toysData = [
  { id: "id-1", name: "Rainbow Sparkle Unicorn Plush" },
  { id: "id-2", name: "Jungle Adventure Playset" },
  { id: "id-3", name: "Magical Princess Castle Dollhouse" },
  { id: "id-4", name: "RoboBot Transformer Robot" },
  { id: "id-5", name: "SuperBlast Action Figure" },
];

// Child component
const ToyCard = (props) => (
  <ul>
    {props.toys.map((toy) => (
      <li>{toy.name}</li>
    ))}
  </ul>
);

// Parent component
const App = () => (
  <>
    <ToyCard toys={toysData} />
  </>
);

Nas linhas 13-15, observamos a utilização do método map(). Ele permite iterar por cada item do array, extrair seu valor e gerar uma marcação específica com base nos dados de cada item.

Código completo do aplicativo:

No entanto, se prestarmos atenção ao console, podemos perceber que recebemos o aviso: Each child in a list should have a unique "key" prop..

Key

A key é uma propriedade de string fundamental que deve ser atribuída ao criar elementos dentro de uma coleção.

O React utiliza as keys para garantir uma identidade estável para os elementos em uma coleção. Essas keys permitem que o React identifique quais elementos precisam ser renderizados novamente e recriados quando houver alterações, em vez de recriar toda a coleção. O uso de keys evita a recriação desnecessária de elementos, resultando em melhor desempenho.

Note
Nota

A key deve ser única entre os elementos vizinhos. Ela deve permanecer constante e não mudar com o tempo.

É comumente recomendado utilizar identificadores, como valores de id provenientes dos dados do backend, como props de chave. Essa prática permite que o React identifique e gerencie de forma eficaz elementos individuais dentro de uma coleção.

Vamos corrigir nosso aplicativo anterior utilizando as props de chave para os itens:

// Data from backend
const toysData = [
  { id: "id-1", name: "Rainbow Sparkle Unicorn Plush" },
  { id: "id-2", name: "Jungle Adventure Playset" },
  { id: "id-3", name: "Magical Princess Castle Dollhouse" },
  { id: "id-4", name: "RoboBot Transformer Robot" },
  { id: "id-5", name: "SuperBlast Action Figure" },
];

// Child component
const ToyCard = (props) => (
  <ul>
    {props.toys.map((toy) => (
      <li key={toy.id}>{toy.name}</li>
    ))}
  </ul>
);

// Parent component
const App = () => (
  <>
    <ToyCard toys={toysData} />
  </>
);

Linha 14: a prop key é definida no elemento que será renderizado várias vezes dentro de um array de dados.

Código completo do aplicativo:

1. Qual método é comumente utilizado para renderizar coleções de dados recebidos do backend no React?

2. Por que é importante atribuir uma prop key aos elementos dentro de uma coleção no React?

3. Qual deve ser o valor da propriedade key para garantir uma identidade estável para os elementos dentro de uma coleção?

question mark

Qual método é comumente utilizado para renderizar coleções de dados recebidos do backend no React?

Select the correct answer

question mark

Por que é importante atribuir uma prop key aos elementos dentro de uma coleção no React?

Select the correct answer

question mark

Qual deve ser o valor da propriedade key para garantir uma identidade estável para os elementos dentro de uma coleção?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 6
some-alt