https://www.developerway.com/posts/react-key-attribute
https://blog.alexdevero.com/react-best-practices-pt2/
https://climbtheladder.com/10-react-key-best-practices/
https://fullstackopen.com/es/part2/renderizando_una_coleccion_modulos#atributo-key
key al renderizar listas en React?Cuando renderizas listas en React, las claves (key) ayudan a React a identificar cada elemento de la lista de manera única. Esto es importante para optimizar el rendimiento y asegurar que los elementos se actualicen correctamente en la interfaz al realizar cambios como agregar, eliminar o reordenar elementos.
key o si no es única?keykey internamente para hacer seguimiento de cada elemento en el DOM virtual.keyconst App = () => {
const frutas = ["Manzana", "Plátano", "Naranja"];
return (
<ul>
{frutas.map((fruta) => (
<li>{fruta}</li> // 🚫 React mostrará un error en la consola.
))}
</ul>
);
};
Warning: Each child in a list should have a unique «key» prop.
keyconst App = () => {
const frutas = ["Manzana", "Plátano", "Naranja"];
return (
<ul>
{frutas.map((fruta, index) => (
<li key={index}>{fruta}</li>
))}
</ul>
);
};
keyid.Ejemplo:
const usuarios = [
{ id: 1, nombre: "Juan" },
{ id: 2, nombre: "Ana" },
];
return usuarios.map((usuario) => <li key={usuario.id}>{usuario.nombre}</li>);
key:
Ejemplo:
const colores = ["Rojo", "Verde", "Azul"];
return colores.map((color, index) => <li key={index}>{color}</li>);
idCuando los datos no tienen un id único, considera estas opciones:
key único basado en el contenido del elemento:
Ejemplo:
const frutas = ["Manzana", "Plátano", "Naranja"];
return frutas.map((fruta) => <li key={fruta}>{fruta}</li>);
uuid para generar identificadores.Ejemplo:
npm install uuid
import { v4 as uuidv4 } from "uuid";
const frutas = ["Manzana", "Plátano", "Naranja"];
return frutas.map((fruta) => <li key={uuidv4()}>{fruta}</li>);
Nota: Generar claves únicas dinámicamente no es ideal si la lista cambia frecuentemente, ya que React no podrá asociar correctamente los elementos previos con los nuevos.
Ejemplo:
const frutas = ["Manzana", "Plátano", "Naranja"];
return frutas.map((fruta, index) => <li key={index}>{fruta}</li>);
id único y estable.uuid si no hay una clave única en los datos.