FixedSizeList: Renderizando Milhares de Itens
Configure o FixedSizeList do react-window para linhas de altura uniforme e conecte-o aos seus dados.
FixedSizeList: Renderizando Milhares de Itens é uma aula grátis de React Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.
Instalando o react-window
Você adiciona react-window a um projeto usando o gerenciador de pacotes, por exemplo, instalando o pacote react-window. Ele é pequeno e não possui dependências pesadas.
Depois de instalado, importe os componentes de lista necessários, principalmente FixedSizeList para linhas que têm todas a mesma altura.
Propriedades obrigatórias do FixedSizeList
FixedSizeList precisa de várias propriedades para funcionar: height e width definem o contêiner de rolagem, itemCount indica quantos itens existem e itemSize é a altura de cada linha em pixels.
A propriedade children é uma função de renderização que desenha uma única linha. Com essas informações, o componente conhece a geometria necessária para aplicar a técnica de janela corretamente.
A função de renderização das linhas
A função de renderização children recebe um objeto com index e style. index indica qual item deve ser renderizado, permitindo que você busque os dados corretos, e style posiciona a linha dentro da lista virtual.
Você retorna o JSX dessa única linha, e react-window chama essa função apenas para as linhas que estão na janela atual.
A propriedade style é essencial
A propriedade style é essencial e deve ser aplicada ao elemento da sua linha. react-window posiciona cada linha de forma absoluta, usando top para colocá-la no deslocamento correto dentro de um contêiner alto com rolagem.
Sem aplicar style, todas as linhas ficariam empilhadas na mesma posição, e a virtualização deixaria de funcionar visualmente.
Esquecer style faz tudo parar de funcionar
O erro mais comum ao usar react-window é omitir a propriedade style na linha. A lista parecerá quebrada, com as linhas sobrepostas no topo e a rolagem funcionando de maneira incorreta.
Sempre espalhe ou atribua o style fornecido ao elemento mais externo da sua linha para manter o posicionamento correto.
Passando dados por meio de itemData
Em vez de capturar seu vetor dentro da função de renderização, você pode passá-lo pela propriedade itemData. react-window então o encaminha para a linha como um campo data, junto com index e style.
Isso mantém o componente de linha desacoplado e pode ajudar na memoização, pois a linha recebe seus dados explicitamente.
Direção horizontal
FixedSizeList oferece suporte a listas horizontais por meio da propriedade layout definida como horizontal, ou usando as opções direction, conforme a versão. Nesse caso, itemSize representa a largura em vez da altura.
Isso é útil para carrosséis ou linhas do tempo com rolagem horizontal que também contenham muitos itens.
overscanCount
A propriedade overscanCount renderiza algumas linhas extras logo além da janela visível. Esse buffer reduz a chance de aparecer um espaço vazio durante uma rolagem rápida, antes que as novas linhas sejam montadas.
Um overscan pequeno torna a experiência mais fluida, enquanto um grande desperdiça o benefício ao montar linhas demais fora da tela.
AutoSizer para contêineres responsivos
FixedSizeList precisa de dimensões explícitas em pixels, o que é pouco prático em layouts responsivos. O componente complementar AutoSizer mede o elemento pai e fornece width e height à lista por meio de uma propriedade de renderização.
Envolver a lista em AutoSizer permite que ela preencha um contêiner flexível sem que você precise codificar tamanhos fixos, adaptando-se conforme o layout muda.
Montando o FixedSizeList
Um FixedSizeList funcional define height, width, itemCount e itemSize, e renderiza as linhas por meio de uma função children que aplica a propriedade style. Opcionalmente, AutoSizer fornece as dimensões, e overscanCount adiciona um buffer.
Com isso, uma lista de qualquer tamanho mantém montadas apenas as linhas visíveis, enquanto a rolagem permanece fluida.
Verificação rápida: propriedades obrigatórias do FixedSizeList
Recapitule o que deve ser informado ao FixedSizeList para renderizar as linhas corretamente.
Recapitulação: FixedSizeList
FixedSizeList renderiza linhas com a mesma altura usando height, width, itemCount, itemSize e uma função de renderização children que recebe index e style. Aplicar a propriedade style é obrigatório, caso contrário as linhas se sobrepõem.
Passe dados por meio de itemData, ofereça suporte ao layout horizontal, adicione um pequeno buffer com overscanCount e use AutoSizer para preencher contêineres responsivos sem codificar dimensões fixas.
Aprenda React com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 88
- Aulas
- 324
Perguntas Frequentes
A aula “FixedSizeList: Renderizando Milhares de Itens” é grátis?
Sim — o texto completo de “FixedSizeList: Renderizando Milhares de Itens” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.
O que vou aprender em “FixedSizeList: Renderizando Milhares de Itens”?
Configure o FixedSizeList do react-window para linhas de altura uniforme e conecte-o aos seus dados. Você pratica React Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar React Academy?
Nenhuma experiência prévia é necessária. React Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “FixedSizeList: Renderizando Milhares de Itens”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de React Academy?
Sim. Cada aula de React Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- O Problema da Renderização de Listas Grandes
- FixedSizeList: Renderizando Milhares de Itens
- VariableSizeList: Alturas Dinâmicas de Linhas
- Combinando Virtualização com Busca de Dados