Renderização de Lista
Para renderizar elementos de uma lista no React você pode utilizar os métodos de iteração do JavaScript, como for
e map
, dessa maneira percorrendo cada elemento de uma lista e renderizando o que for desejado.
function Partners() {
const companies = [
{
name: 'Apple',
products: ['iPhone', 'iPad', 'Macbook', 'Apple Watch'],
url: 'https://www.apple.com',
},
{
name: 'Google',
products: ['Android', 'Google Chrome', 'Google Maps'],
url: 'https://www.google.com',
},
{
name: 'Meta',
products: ['Facebook', 'Instagram', 'WhatsApp'],
url: 'https://www.meta.com/',
},
]
const renderCompany = (company) => {
return (
<div key={company.name}>
<h3>{company.name}</h3>
<strong>Produtos</strong>
<ul>
{company.products.map((product) => (
<li key={product}>{product}</li>
))}
</ul>
<a href={company.url} target="_blank" rel="noreferrer">
Visitar site
</a>
</div>
)
}
return (
<div>
{companies.map(renderCompany)}
</div>
)
}
Tem ponto bastante importante na renderização dos elementos que é a inserção de uma propriedade key
em cada elemento da lista. Essa propriedade é utilizada pelo React para identificar cada elemento e assim fazer a renderização de forma mais eficiente.
É importante que seja único para cada item quando utilizado no mesmo nível.
const values = ['a', 'b', 'c']
const List = () => {
return (
<ul>
{values.map((value) => (
<li key={value}>{value}</li>
))}
</ul>
)
}
Isso evita problemas de performance e também de renderização, como por exemplo, quando um elemento é removido da lista, o React consegue identificar e remover apenas aquele elemento, sem precisar renderizar todos novamente.