finds.dev

Akryum/vue-virtual-scroller

⚡️ Blazing fast scrolling for any amount of data

View on GitHubHomepage ↗

★ 10,793TypeScriptupdated Oct 2026

// the take

A virtual scrolling library for Vue 3 that renders only the visible slice of a long list, with separate components for fixed-height lists (RecycleScroller), variable-height lists (DynamicScroller), grids, and window-based scrolling. It's for anyone rendering large lists or chat/feed UIs in Vue who is seeing real jank or memory bloat from naive v-for.

Covers the hard case properly: DynamicScroller measures item heights after render and caches them per key, so you get virtualization even when row height varies (chat messages, feed cards) instead of forcing fixed-height-only like most clones. Ships both component and composable APIs (useRecycleScroller, useDynamicScroller, useWindowScroller), so it fits into script-setup-heavy codebases without wrapping everything in a component. It has an actual Playwright-driven benchmark suite comparing virtualized vs plain list rendering with recorded traces, which is more rigor than most UI libs bother with. WindowScroller and grid support cover the common adjacent cases (infinite page scroll, image grids) without reaching for a different library.

Vue 3 only going forward — Vue 2 support is frozen on the v1 branch, so anyone still on Vue 2 is stuck with an unmaintained fork of this. Variable-height virtualization is fundamentally a measure-after-render approach: if content loads asynchronously (images, lazy data) after the initial measurement, you get layout jumps and scroll position drift that the library can't fully hide. It's effectively a single-maintainer project (Akryum) funded by GitHub Sponsors — fine for now given the star count and activity, but a real bus-factor risk if he moves on. No built-in support for sticky headers/columns or two-axis virtualization for spreadsheet-like tables, so if you need an actual data grid you'll be building a lot of that yourself on top of the grid component.

We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →

// at a glance

Stars
10,793
Forks
976
Language
TypeScript
Last commit
23 Oct 2026

// nearby

If vue-virtual-scroller isn't quite it.

All repos →