Virtualizing large collections
Learn how to efficiently render thousands of items using UI virtualization for optimal performance in large-scale applications.
Last updated
Was this helpful?
Was this helpful?
// my-component.ts
export class MyComponent {
items = Array.from({ length: 100000 }, (_, i) => ({
id: i,
name: `Item ${i}`
}));
}<!-- my-component.html -->
<div style="height: 500px; overflow: auto;">
<div virtual-repeat.for="item of items" style="height: 50px;">
${item.id}: ${item.name}
</div>
</div><!-- Fixed height -->
<div style="height: 500px; overflow: auto;">
<div virtual-repeat.for="item of items">...</div>
</div>
<!-- Percentage height (parent must have defined height) -->
<div style="height: 100%; overflow: auto;">
<div virtual-repeat.for="item of items">...</div>
</div>
<!-- Flexbox -->
<div style="display: flex; flex-direction: column; height: 100vh;">
<div style="flex: 1; overflow: auto;">
<div virtual-repeat.for="item of items">...</div>
</div>
</div>
<!-- Viewport units -->
<div style="height: calc(100vh - 60px); overflow: auto;">
<div virtual-repeat.for="item of items">...</div>
</div>
<!-- CSS Grid -->
<div style="display: grid; grid-template-rows: auto 1fr; height: 100vh;">
<header>Header</header>
<div style="overflow: auto;">
<div virtual-repeat.for="item of items">...</div>
</div>
</div>