Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Vue.js
  3. @egjs/vue-infinitegrid

@egjs/vue-infinitegrid

MITTypeScript4.13.0

A JavaScript library for implementing infinite grid layouts with various card arrangements and guaranteed DOM performance.

Visit WebsiteGitHubGitHub
2.4k stars96 forks0 contributors

What is @egjs/vue-infinitegrid?

@egjs/infinitegrid is a JavaScript library for creating infinitely scrolling grid layouts with cards of varying sizes. It solves the problem of building performant, dynamic grids that can handle large datasets without degrading user experience. The library provides multiple layout algorithms like Masonry and Justified grids while maintaining optimal DOM management.

Target Audience

Frontend developers building content-heavy applications like image galleries, product listings, dashboards, or social media feeds that require infinite scrolling and responsive grid layouts.

Value Proposition

Developers choose InfiniteGrid for its framework-agnostic support, performance guarantees through DOM optimization, and flexible layout options that work seamlessly across desktop and mobile environments.

Overview

A module used to arrange card elements including content infinitely on a grid layout.

Use Cases

Best For

  • Building Pinterest-style masonry layouts with infinite scroll
  • Creating image galleries or product grids with lazy loading
  • Implementing dashboards with dynamically sized cards
  • Developing social media feeds with continuous content loading
  • Optimizing performance for large datasets in grid layouts
  • Adding infinite scrolling to existing grid components in React, Vue, or Angular

Not Ideal For

  • Applications using server-side rendering with minimal client-side JavaScript for initial page loads
  • Projects that require traditional pagination instead of infinite scrolling interfaces
  • Teams looking for out-of-the-box styled grid components without custom CSS integration

Pros & Cons

Pros

Framework Agnostic Support

Works seamlessly with React, Vue, Angular, Svelte, and vanilla JavaScript, as shown by the dedicated packages and badges listed in the README, ensuring broad compatibility.

Multiple Layout Algorithms

Offers Masonry, Justified, Frame, and Packing grid types, providing flexibility for different design needs, demonstrated in documentation and demos.

Performance Optimization

Maintains a limited number of DOM elements and uses ResizeObserver for efficient rendering, guaranteeing smooth scrolling even with large datasets, as highlighted in the philosophy.

Dynamic Size Handling

Supports items with varying sizes through options like isEqualSize and data-grid-size-group attributes, allowing for complex grid arrangements without performance hits, as explained in the 'Pre-guess size' section.

Cons

Manual Data Flow Management

Requires developers to handle item appending and data fetching manually via events like 'requestAppend', which adds complexity compared to more integrated, declarative solutions.

Attribute-Heavy Configuration

Relies on custom data attributes (e.g., data-grid-lazy, data-grid-size-group) for advanced features, which might not align well with some frameworks' reactive data patterns and can be error-prone.

Limited Built-in Styling

Focuses solely on layout logic, leaving all styling to the developer, increasing initial setup time for teams wanting pre-designed, drop-in components.

Frequently Asked Questions

Quick Stats

Stars2,362
Forks96
Contributors0
Open Issues2
Last commit4 months ago
CreatedSince 2017

Tags

#vanilla-js#layout#grid-layout#infinite-scroll#frontend#ui-components#masonry#grid#javascript#dom-optimization#react#vue#infinite#responsive-design#performance

Built With

T
TypeScript

Links & Resources

Website

Included in

Vue.js73.6k
Auto-fetched 5 hours ago

Related Projects

virtuavirtua

A zero-config, fast and small (~3kB) virtual list (and grid) component for React, Vue, Solid, Svelte and Angular.

Stars3,735
Forks114
Last commit11 hours ago
vue-infinityvue-infinity

Vue Infinity is a lightweight library for creating resource efficient apps. Unload parts of your UI when not visible and build easy to layout virtual scrollers that can present unlimited content while keeping resource usage fixed.

Stars151
Forks1
Last commit1 month ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub