Convert Figma logo to code with AI

inovua logoreactdatagrid

Empower Your Data with the best React Data Grid there is

3,446
55
3,446
120

Top Related Projects

25,613

🤖 Headless UI for building powerful tables & datagrids for TS/JS - React-Table, Vue-Table, Solid-Table, Svelte-Table

Feature-rich and customizable data grid React component

13,037

The best JavaScript Data Table for building Enterprise Applications. Supports React / Angular / Vue / Plain JavaScript.

Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.

230,431

The library for web and native user interfaces.

Quick Overview

ReactDataGrid is a powerful and feature-rich data grid component for React applications. It offers high performance, extensive customization options, and a wide range of built-in functionalities for handling large datasets efficiently.

Pros

  • High performance with virtualization for handling large datasets
  • Extensive customization options for columns, cells, and overall appearance
  • Built-in features like sorting, filtering, grouping, and pagination
  • Excellent TypeScript support and comprehensive documentation

Cons

  • Steep learning curve due to the extensive API and configuration options
  • Large bundle size, which may impact initial load times for smaller applications
  • Some advanced features require a commercial license
  • Limited community-contributed plugins compared to some other data grid libraries

Code Examples

  1. Basic usage with default configuration:
import ReactDataGrid from '@inovua/reactdatagrid-community'
import '@inovua/reactdatagrid-community/index.css'

const columns = [
  { name: 'name', header: 'Name', minWidth: 50, defaultFlex: 2 },
  { name: 'age', header: 'Age', maxWidth: 1000, defaultFlex: 1 }
]

const dataSource = [
  { id: 1, name: 'John McQueen', age: 35 },
  { id: 2, name: 'Mary Stones', age: 25 },
  { id: 3, name: 'Robert Fil', age: 27 },
  { id: 4, name: 'Roger Robson', age: 81 },
  { id: 5, name: 'Billary Konwik', age: 18 }
]

const App = () => (
  <ReactDataGrid
    idProperty="id"
    columns={columns}
    dataSource={dataSource}
  />
)
  1. Enabling sorting and filtering:
import ReactDataGrid from '@inovua/reactdatagrid-community'
import '@inovua/reactdatagrid-community/index.css'

const App = () => (
  <ReactDataGrid
    idProperty="id"
    columns={columns}
    dataSource={dataSource}
    sortable={true}
    filterable={true}
  />
)
  1. Custom cell rendering:
import ReactDataGrid from '@inovua/reactdatagrid-community'
import '@inovua/reactdatagrid-community/index.css'

const columns = [
  { 
    name: 'name', 
    header: 'Name', 
    render: ({ value }) => <strong>{value}</strong>
  },
  { 
    name: 'age', 
    header: 'Age', 
    render: ({ value }) => value < 30 ? <span style={{ color: 'green' }}>{value}</span> : value
  }
]

const App = () => (
  <ReactDataGrid
    idProperty="id"
    columns={columns}
    dataSource={dataSource}
  />
)

Getting Started

  1. Install the package:
npm install @inovua/reactdatagrid-community
  1. Import the component and styles in your React application:
import ReactDataGrid from '@inovua/reactdatagrid-community'
import '@inovua/reactdatagrid-community/index.css'
  1. Use the component in your application:
const App = () => (
  <ReactDataGrid
    idProperty="id"
    columns={columns}
    dataSource={dataSource}
  />
)

Make sure to define your columns and dataSource as shown in the code examples above.

Competitor Comparisons

25,613

🤖 Headless UI for building powerful tables & datagrids for TS/JS - React-Table, Vue-Table, Solid-Table, Svelte-Table

Pros of Table

  • Highly flexible and framework-agnostic, supporting React, Vue, Solid, and more
  • Lightweight core with modular plugins for advanced features
  • Strong TypeScript support and type safety

Cons of Table

  • Steeper learning curve due to its headless nature and flexibility
  • Requires more setup and configuration for basic use cases
  • Less out-of-the-box styling and UI components

Code Comparison

Table:

import { useReactTable, getCoreRowModel, flexRender } from '@tanstack/react-table'

const table = useReactTable({
  data,
  columns,
  getCoreRowModel: getCoreRowModel(),
})

ReactDataGrid:

import ReactDataGrid from '@inovua/reactdatagrid-community'

<ReactDataGrid
  idProperty="id"
  columns={columns}
  dataSource={data}
/>

Summary

Table offers greater flexibility and framework support, making it suitable for complex, custom implementations across various JavaScript frameworks. It provides a more modular approach with strong TypeScript integration. However, it requires more initial setup and may have a steeper learning curve.

ReactDataGrid, on the other hand, provides a more opinionated and ready-to-use solution specifically for React. It offers more out-of-the-box styling and UI components, making it easier to get started with basic use cases. However, it may be less flexible for highly customized implementations and is limited to React applications.

Feature-rich and customizable data grid React component

Pros of react-data-grid

  • Open-source and free to use
  • Lightweight and performant for large datasets
  • Extensive documentation and community support

Cons of react-data-grid

  • Limited built-in features compared to reactdatagrid
  • Less frequent updates and maintenance
  • Steeper learning curve for advanced customizations

Code Comparison

react-data-grid:

import ReactDataGrid from 'react-data-grid';

const columns = [
  { key: 'id', name: 'ID' },
  { key: 'title', name: 'Title' }
];

const rows = [
  { id: 1, title: 'Example 1' },
  { id: 2, title: 'Example 2' }
];

function Example() {
  return <ReactDataGrid columns={columns} rows={rows} />;
}

reactdatagrid:

import ReactDataGrid from '@inovua/reactdatagrid-community';

const columns = [
  { name: 'id', header: 'ID', defaultFlex: 1 },
  { name: 'title', header: 'Title', defaultFlex: 1 }
];

const dataSource = [
  { id: 1, title: 'Example 1' },
  { id: 2, title: 'Example 2' }
];

function Example() {
  return <ReactDataGrid columns={columns} dataSource={dataSource} />;
}

Both libraries offer similar basic functionality, but reactdatagrid provides more built-in features and a more modern API. react-data-grid is lighter and may be suitable for simpler use cases, while reactdatagrid offers more advanced capabilities out of the box.

13,037

The best JavaScript Data Table for building Enterprise Applications. Supports React / Angular / Vue / Plain JavaScript.

Pros of ag-grid

  • More comprehensive feature set, including advanced filtering, sorting, and grouping
  • Better performance with large datasets due to virtualization techniques
  • Extensive documentation and community support

Cons of ag-grid

  • Steeper learning curve due to complex API and configuration options
  • More expensive licensing for enterprise features
  • Larger bundle size, which may impact initial load times

Code Comparison

reactdatagrid:

<ReactDataGrid
  idProperty="id"
  columns={columns}
  dataSource={data}
  style={{ height: 400 }}
/>

ag-grid:

<AgGridReact
  columnDefs={columnDefs}
  rowData={rowData}
  domLayout='autoHeight'
/>

Both libraries offer similar basic setup, but ag-grid typically requires more configuration for advanced features. reactdatagrid aims for a simpler API, while ag-grid provides more granular control over grid behavior and appearance.

reactdatagrid focuses on React-specific implementation, whereas ag-grid supports multiple frameworks. This specialization allows reactdatagrid to offer a more React-idiomatic API, potentially simplifying integration for React developers.

ag-grid's extensive feature set and performance optimizations make it suitable for complex enterprise applications with large datasets. reactdatagrid, while less feature-rich, may be more appropriate for simpler use cases or projects where a lightweight solution is preferred.

Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.

Pros of Material-UI

  • Comprehensive UI component library with a wide range of pre-built components
  • Strong community support and extensive documentation
  • Follows Material Design principles, ensuring a consistent and modern look

Cons of Material-UI

  • Larger bundle size due to the extensive component library
  • Customization can be complex for highly specific designs
  • Learning curve for developers new to Material Design concepts

Code Comparison

Material-UI:

import { DataGrid } from '@mui/x-data-grid';

const columns = [
  { field: 'id', headerName: 'ID', width: 90 },
  { field: 'firstName', headerName: 'First name', width: 150 },
];

<DataGrid rows={rows} columns={columns} />

ReactDataGrid:

import ReactDataGrid from '@inovua/reactdatagrid-enterprise';

const columns = [
  { name: 'id', header: 'ID', width: 90 },
  { name: 'firstName', header: 'First name', width: 150 },
];

<ReactDataGrid columns={columns} dataSource={rows} />

Both libraries offer data grid components, but Material-UI provides a more extensive set of UI components beyond just data grids. ReactDataGrid focuses specifically on powerful and flexible data grid functionality, while Material-UI offers a broader range of components for building complete user interfaces. The code syntax is similar, with minor differences in prop naming and structure.

230,431

The library for web and native user interfaces.

Pros of React

  • Massive ecosystem and community support
  • Extensive documentation and learning resources
  • Flexible and can be used for various types of applications

Cons of React

  • Steeper learning curve for beginners
  • Requires additional libraries for complex state management
  • More boilerplate code for simple applications

Code Comparison

React:

function App() {
  return (
    <div>
      <h1>Hello, World!</h1>
    </div>
  );
}

ReactDataGrid:

import ReactDataGrid from '@inovua/reactdatagrid-community'

function App() {
  return <ReactDataGrid columns={columns} dataSource={dataSource} />
}

Key Differences

  • React is a general-purpose UI library, while ReactDataGrid is a specialized data grid component
  • ReactDataGrid provides out-of-the-box functionality for displaying and manipulating tabular data
  • React requires more setup and additional components to achieve similar data grid functionality

Use Cases

  • React: Building complex, interactive web applications
  • ReactDataGrid: Quickly implementing data-heavy tables and grids in React applications

Community and Support

  • React: Large, active community with frequent updates and extensive third-party resources
  • ReactDataGrid: Smaller, more focused community with specialized support for data grid use cases

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README


Table of Contents

Purpose

We've set out to build the best React Data Grid written specifically with React in mind.

Problem

We know other solutions exist out there, but we find they have one or multiple of the following problems:

  • are just thin wrappers around React - more like an after-thought;
  • are too bloated;
  • are not extensible and easy to use;
  • don't have enterprise-grade features;
  • lack of documentation.

Solution

We've poured our soul into ReactDataGrid and built it from scratch with React in mind.

There are 2 editions of the ReactDataGrid that we're releasing:

  • Community Edition - includes the core functionality most people actually use in their products (MIT License);
  • Enterprise Edition - includes advanced functionality, especially targeted for enterprise apps (Commercial License).

Both editions of the ReactDataGrid are published and available in the public npm registry.

Installation & Getting Started

ReactDataGrid is distributed via npm. So getting started is as easy as:

$ npm install @inovua/reactdatagrid-community --save

or if you want to evaluate the Enterprise Edition

$ npm install @inovua/reactdatagrid-enterprise --save

See the documentation getting started page for more details.

TypeScript support

ReactDataGrid ships with TypeScript definition files, so it's fully integrated with your preferred editor to help with autocompletion and type-safety.

Features

ReactDataGrid is packed with all the functionality you would expect from an enterprise-grade grid.

As stated before, the ReactDataGrid is built with React in mind, so it supports popular patterns in the React world: controlled/uncontrolled props, render props, built with immutability from the ground up etc.

Here's a list of the features that we support for each edition:

Community Edition features

Enterprise Edition features

Besides the above, there's a lot more backed into the ReactDataGrid, so make sure you explore our documentation.

Evaluating and using the Enterprise Edition

The Enterprise Edition is a commercial product and it requires a commercial license - please visit the pricing page for more details. Once you buy a license, we'll provide you a license key, so you can start using the ReactDataGrid Enterprise Edition in your apps.

You are free to evaluate the Enterprise Edition of the ReactDataGrid even without a license key - all the features are available and ready to use, but a license notice will be displayed initially for a few seconds. If you want to remove that, you can contact us and we'll send you an evaluation license key which you can use for 30 days.

Please note you are not allowed to integrate the Enterprise Edition of the ReactDataGrid into end products or use it for any commercial, productive or training purpose without a valid commercial license. Read EULA for more details.

After you purchase and receive your commercial license key, you have to set it in the licenseKey prop then you can start using the ReactDataGrid in development and production.

import ReactDataGrid from '@inovua/reactdatagrid-enterprise';
import '@inovua/reactdatagrid-enterprise/index.css';

<ReactDataGrid licenseKey="..." />;

Even without a license key, all features are unlocked so you can evaluate the ReactDataGrid and decide whether you need the Community Edition or the Enterprise Edition.

Documentation

We're heavily invested into our documentation - it ships with full working examples and a live editor. Each prop ReactDataGrid supports has it's own description and usage example.

Additionally, each feature is clearly presented and has a dedicated page that explains the feature and shows examples of real-life usage. See for example sorting, filtering, grouping etc.

Examples

import React from 'react';
import ReactDataGrid from '@inovua/reactdatagrid-enterprise';
import '@inovua/reactdatagrid-enterprise/index.css';

const columns = [
  { name: 'name', header: 'Name', minWidth: 50, defaultFlex: 2 },
  { name: 'age', header: 'Age', maxWidth: 1000, defaultFlex: 1 },
];

const gridStyle = { minHeight: 550 };

const dataSource = [
  { id: 1, name: 'John McQueen', age: 35 },
  { id: 2, name: 'Mary Stones', age: 25 },
  { id: 3, name: 'Robert Fil', age: 27 },
  { id: 4, name: 'Roger Robson', age: 81 },
  { id: 5, name: 'Billary Konwik', age: 18 },
  { id: 6, name: 'Bob Martin', age: 18 },
  { id: 7, name: 'Matthew Richardson', age: 54 },
  { id: 8, name: 'Ritchie Peterson', age: 54 },
  { id: 9, name: 'Bryan Martin', age: 40 },
  { id: 10, name: 'Mark Martin', age: 44 },
  { id: 11, name: 'Michelle Sebastian', age: 24 },
  { id: 12, name: 'Michelle Sullivan', age: 61 },
  { id: 13, name: 'Jordan Bike', age: 16 },
  { id: 14, name: 'Nelson Ford', age: 34 },
  { id: 15, name: 'Tim Cheap', age: 3 },
  { id: 16, name: 'Robert Carlson', age: 31 },
  { id: 17, name: 'Johny Perterson', age: 40 },
];

export default () => (
  <ReactDataGrid
    idProperty="id"
    columns={columns}
    dataSource={dataSource}
    style={gridStyle}
  />
);

Our documentation contains hundreds of running examples, so please make sure you check that out.

Client stories

It’s already been used by thousands of users in business-critical apps, so you can trust it from the get-go. Our clients are building their apps with the ReactDataGrid at the core of their products.

With the help of the ReactDataGrid, provided by Inovua Trading S.R.L., we have been able to offer our customers the perfect support for state-of-the-art data management in our fleet management solution WEBFLEET.

--Thomas Boehm, Senior Engineering Manager at Webfleet Solutions, a Bridgestone Company


Enterprise-grade Datagrid component with outstanding feature coverage and second-to-none performance made it a straightforward decision to include it in our cloud-centric on-demand solutions.

--Yuri Genin, Lead UI Architect at PROS

License

Community Edition - MIT License

Enterprise Edition - Commercial License

NPM DownloadsLast 30 Days