10.8K ·GitHub
What is this?
It is a Vue component library that only renders the rows or cells currently visible in the viewport, so you can scroll through lists or grids with huge amounts of data without any lag.
Is this a standalone app or something I add to my own Vue project?
It is a library, not an app: you install the npm package and drop its scroller components into an existing Vue 3 project. The current package line targets Vue 3; Vue 2 users need a separately maintained version.
How do I add it to my project?
Install the package as a dependency and use it with an ESM-aware build setup, since it ships ESM-only on the Vue 3 line.
What build tooling does it require?
You need Vue 3 plus a bundler that understands native ES modules — Vite, Nuxt, Rollup, or webpack 5 all work; older CommonJS-only setups will not.
Does it support Vue 2 out of the box?
No, this package line is for Vue 3 only. Vue 2 projects need to use the separate version linked in the docs.
Does it work in Nuxt/SSR setups, or browser-only Vite apps?
Since Vite, Nuxt, Rollup and webpack 5 are all listed as supported toolchains, it works in both plain Vite/Vue apps and Nuxt projects, as long as the bundler can handle ESM.
Is there a demo I can try before installing it?
Yes, the README links to both a live demo and a video demo showing the virtual scrolling in action.
What are similar projects?
element-plus, tamagui, formily, vue-pure-admin, vuestic-admin, vue-awesome-swiper, vuetify, naive-ui
Which topics is it in?
esm, vuejs, pnpm, vue3, webpack, vite, component-library, ui-components, performance, npm, frontend, nodejs