Saltar al contenido principal

wiki-List

Ver en Git


List

Componente List

El componente List es una lista dinámica y altamente configurable que soporta carga perezosa (lazy loading) tanto en el cliente como en el servidor. También admite opciones de estilo personalizadas y tamaños predefinidos.

Referencia de la API​

Propiedades Comunes​

PropiedadTipoDescripciónValor por defecto
childrenReactNode o ReactNode[]Elementos secundarios (hijos) de la lista.[]
styleCSSPropertiesEstilos adicionales aplicados al contenedor de la lista.-
classNamestringClase CSS personalizada para el contenedor de la lista.-
idstringID único para la lista.-
size'small' o 'normal' o 'big'Tamaño de la lista.'normal'
borderedbooleanIndica si la lista debe tener bordes.false
aura-teststringIdentificador para pruebas automatizadas.'list'
customLoadingReactNodeComponente personalizado para indicar el estado de carga.-
virtualScrollingundefined o falsePlaceholder para virtual scrolling (pendiente de implementación).undefined

Propiedades para Lazy Loading en el Servidor​

PropiedadTipoDescripciónValor por defecto
lazyLoading'server'Indica que se utiliza lazy loading desde el servidor.-
fetchStateCallbackDispatch<SetStateAction<any[]>> o (el: any) => voidFunción para actualizar el estado con los datos cargados.-
urlstringURL del endpoint para cargar los datos.-
baseUrlstringBase URL opcional para concatenar con url.-
finishedbooleanIndica si se han cargado todos los datos.-
dataFetchOptionsRequestInitOpciones de configuración para la solicitud de datos (fetch).-

Propiedades para Lazy Loading Normal o en el Cliente​

PropiedadTipoDescripciónValor por defecto
lazyLoadingundefined o 'client'Indica si se utiliza lazy loading en el cliente o no se utiliza.undefined

Ejemplo de Uso​

Lista Normal​

import { List, ListItem } from '@auravant/ui-kit';

export const ListExample = () => (
<List size="normal" bordered>
<ListItem>Item 1</ListItem>
<ListItem>Item 2</ListItem>
<ListItem>Item 3</ListItem>
</List>
);

Lista con Lazy Loading desde el Servidor​

import { useState } from 'react';
import { List, ListItem } from '@auravant/ui-kit';

const data = [
{ name: 'John Doe' },
{ name: 'John Smith' },
{ name: 'John Johnson' },
];

export const ServerLazyLoadingListExample = () => {
const [items, setItems] = useState(data);
const [finished, setFinished] = useState(false);

return (
<List
lazyLoading="server"
fetchStateCallback={setItems}
url="https://api.example.com/data"
finished={finished}
size="big"
bordered
>
{items.map((item, index) => (
<ListItem key={index}>{item.name}</ListItem>
))}
</List>
);
};

Notas​

  • El componente soporta lazyLoading en el cliente y servidor. La implementación de virtual scrolling está pendiente.
  • Si se especifica customLoading, este componente será renderizado en lugar del cargador por defecto.
  • Los tamaños disponibles (small, normal, big) afectan las clases CSS aplicadas.
  • Para listas grandes con datos dinámicos, se recomienda utilizar lazyLoading para optimizar el rendimiento.