FixedSizeList: renderización de miles de elementos
Configure el FixedSizeList de react-window para filas de altura uniforme y conéctelo a sus datos.
FixedSizeList: renderización de miles de elementos es una lección gratuita de React Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de React Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de React Academy incluye 4 lecciones en total.
Instalar react-window
Puede añadir react-window a un proyecto mediante el gestor de paquetes; por ejemplo, instalando el paquete react-window. Es pequeño y no tiene dependencias pesadas.
Una vez instalado, importe los componentes de lista que necesite, normalmente FixedSizeList para las filas que tienen todas la misma altura.
Props obligatorias de FixedSizeList
FixedSizeList necesita varias props para funcionar: height y width definen el contenedor con desplazamiento, itemCount indica cuántos elementos existen e itemSize indica la altura de cada fila en píxeles.
La prop children es una función de renderizado que dibuja una sola fila. Con estos valores, el componente conoce la geometría que necesita para aplicar correctamente el windowing.
La función de renderizado de las filas
La función de renderizado children recibe un objeto con index y style. index indica qué elemento se debe renderizar, lo que le permite buscar los datos correctos, y style coloca la fila dentro de la lista virtual.
Devuelve el JSX de esa única fila, y react-window llama a esta función solo para las filas que se encuentran actualmente en la ventana.
La prop style crítica
La prop style es esencial y debe aplicarse al elemento de la fila. react-window coloca cada fila mediante posicionamiento absoluto y utiliza top para situarla en el desplazamiento correcto dentro de un contenedor alto con desplazamiento.
Si no aplica style, todas las filas se apilarán en la misma posición y la virtualización se colapsará visualmente.
Olvidar style lo rompe todo
El error más común al utilizar react-window es omitir la prop style en la fila. La lista parecerá estar rota: las filas se superpondrán en la parte superior y el desplazamiento no funcionará correctamente.
Extienda siempre el objeto style proporcionado o asígnelo al elemento más externo de la fila para mantener el posicionamiento correcto.
Pasar datos mediante itemData
En lugar de cerrar sobre el array dentro de la función de renderizado, puede pasarlo mediante la prop itemData. react-window lo reenvía a la fila como un campo data junto con index y style.
Esto mantiene desacoplado el componente de la fila y puede ayudar con la memorización, ya que la fila recibe sus datos de forma explícita.
Dirección horizontal
FixedSizeList admite listas horizontales mediante la prop layout establecida en horizontal, o mediante las opciones de direction, según la versión. En ese caso, itemSize representa la anchura en lugar de la altura.
Esto resulta práctico para carruseles o líneas de tiempo con desplazamiento horizontal que también contienen muchos elementos.
overscanCount
La prop overscanCount renderiza algunas filas adicionales justo fuera de la ventana visible. Este búfer reduce la posibilidad de que aparezca un espacio vacío durante un desplazamiento rápido, antes de que se monten las filas nuevas.
Un overscan pequeño hace que la experiencia sea más fluida, mientras que uno grande desperdicia la ventaja al montar demasiadas filas fuera de la pantalla.
AutoSizer para contenedores adaptables
FixedSizeList necesita dimensiones explícitas en píxeles, lo que resulta incómodo en diseños adaptables. El componente complementario AutoSizer mide su elemento padre y proporciona width y height a la lista mediante una render prop.
Al envolver la lista en AutoSizer, puede hacer que ocupe un contenedor flexible sin fijar manualmente sus dimensiones, adaptándose a medida que cambia el diseño.
Montar FixedSizeList por completo
Una FixedSizeList funcional establece height, width, itemCount e itemSize, y renderiza las filas mediante una función children que aplica la prop style. De forma opcional, AutoSizer le proporciona las dimensiones y overscanCount añade un búfer.
Con esto, una lista de cualquier longitud mantiene montadas únicamente las filas visibles mientras el desplazamiento sigue siendo fluido.
Comprobación rápida: props obligatorias de FixedSizeList
Recuerde qué información debe recibir FixedSizeList para renderizar las filas correctamente.
Repaso: FixedSizeList
FixedSizeList renderiza filas de igual altura mediante height, width, itemCount, itemSize y una función de renderizado children que recibe index y style. Aplicar la prop style es obligatorio; de lo contrario, las filas se superponen.
Pase datos mediante itemData, admita el diseño horizontal, añada un pequeño búfer con overscanCount y utilice AutoSizer para llenar contenedores adaptables sin fijar manualmente las dimensiones.
Preguntas frecuentes
¿La lección «FixedSizeList: renderización de miles de elementos» es gratis?
Sí — el texto completo de «FixedSizeList: renderización de miles de elementos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de React Academy, actualiza a CoddyKit PRO. El curso de React Academy incluye 4 lecciones en total.
¿Qué aprenderé en «FixedSizeList: renderización de miles de elementos»?
Configure el FixedSizeList de react-window para filas de altura uniforme y conéctelo a sus datos. Practicas React Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar React Academy?
No se requiere experiencia previa. React Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «FixedSizeList: renderización de miles de elementos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de React Academy?
Sí. Cada lección de React Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- El problema de renderizar listas grandes
- FixedSizeList: renderización de miles de elementos
- VariableSizeList: alturas de fila dinámicas
- Combinación de virtualización y obtención de datos