A zero-config, fast and small (~3kB) virtual list (and grid) component for React, Vue, Solid and Svelte.
The virtualnpm library is a zero-config, fast, and small virtual list (and grid) component designed for React, Vue, Solid, and Svelte frameworks. It aims to provide the best performance without requiring extensive configuration while handling common challenges associated with virtualization like dynamic size measurement, scroll position adjustments, imperatives scrolling, and iOS support. With bundle sizes around 3kB gzipped per component and support for various use cases, including fixed size, dynamic size, reverse scrolling, RTL, infinite scrolling, and more, virtualnpm targets modern web development needs.
react >= 16.14
// If using ESM and webpack 5, use react >= 18 to avoid issues.
React is a widely used JavaScript library for building user interfaces and single-page applications. It follows a component-based architecture and uses a virtual DOM to efficiently update and render UI components
SolidJS is a declarative JavaScript library for building user interfaces, offering a reactive programming model for efficient updates. It stands out for its reactivity system that minimizes unnecessary re-renders and its small bundle size, making it a performant choice for developing lightweight and reactive web applications.
Svelte is a modern front-end framework that compiles your code at build time, resulting in smaller and faster applications. It uses a reactive approach to update the DOM, allowing for high performance and a smoother user experience.
Vite is a build tool that aims to provide a faster and leaner development experience for modern web projects
Vue.js is a lightweight and flexible JavaScript framework that allows developers to easily build dynamic and reactive user interfaces. Its intuitive syntax, modular architecture, and focus on performance make it a popular choice for modern web development.
ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.
RollupJS is a popular and efficient JavaScript module bundler that takes the code from multiple modules and packages them into a single optimized file, minimizing the overall size of the application and improving its performance.
Storybook is a tool for developing and testing UI components in isolation. It provides a sandbox environment where you can experiment with different props and states to see how your component responds.
TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.