React Academy · Aula

FixedSizeList: Renderizando Milhares de Itens

Configure o FixedSizeList do react-window para linhas de altura uniforme e conecte-o aos seus dados.

Aula 2 de 412 etapas

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.

Grátis para começar

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

  1. O Problema da Renderização de Listas Grandes
  2. FixedSizeList: Renderizando Milhares de Itens
  3. VariableSizeList: Alturas Dinâmicas de Linhas
  4. Combinando Virtualização com Busca de Dados
← Voltar para React Academy