Top Related Projects
A draggable and resizable grid layout with responsive breakpoints, for React.
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.
🤖 Headless UI for building powerful tables & datagrids for TS/JS - React-Table, Vue-Table, Solid-Table, Svelte-Table
Bootstrap components built with React
An enterprise-class UI design language and React UI library
Quick Overview
DevExtreme Reactive is a set of business-ready React components developed by DevExpress. It offers a collection of customizable and feature-rich UI components for building data-intensive applications, including grids, charts, and schedulers. The library focuses on providing high performance and flexibility for React developers.
Pros
- Comprehensive set of data visualization and management components
- High performance and optimized for large datasets
- Extensive customization options and theming support
- Regular updates and active maintenance by DevExpress
Cons
- Steeper learning curve compared to simpler UI libraries
- Some advanced features require a commercial license
- Documentation can be overwhelming for beginners
- Limited community-contributed extensions compared to more popular libraries
Code Examples
- Creating a basic grid:
import React from 'react';
import { Grid, Table, TableHeaderRow } from '@devexpress/dx-react-grid-material-ui';
const App = () => {
const columns = [
{ name: 'id', title: 'ID' },
{ name: 'name', title: 'Name' },
{ name: 'age', title: 'Age' },
];
const rows = [
{ id: 1, name: 'John', age: 30 },
{ id: 2, name: 'Jane', age: 25 },
];
return (
<Grid rows={rows} columns={columns}>
<Table />
<TableHeaderRow />
</Grid>
);
};
- Adding sorting functionality to the grid:
import React, { useState } from 'react';
import { Grid, Table, TableHeaderRow, SortingState } from '@devexpress/dx-react-grid-material-ui';
const App = () => {
const [sorting, setSorting] = useState([]);
return (
<Grid rows={rows} columns={columns}>
<SortingState
sorting={sorting}
onSortingChange={setSorting}
/>
<Table />
<TableHeaderRow showSortingControls />
</Grid>
);
};
- Creating a basic chart:
import React from 'react';
import { Chart, ArgumentAxis, ValueAxis, BarSeries } from '@devexpress/dx-react-chart-material-ui';
const App = () => {
const data = [
{ year: '2015', population: 2.525 },
{ year: '2016', population: 2.625 },
{ year: '2017', population: 2.750 },
];
return (
<Chart data={data}>
<ArgumentAxis />
<ValueAxis />
<BarSeries valueField="population" argumentField="year" />
</Chart>
);
};
Getting Started
To start using DevExtreme Reactive, follow these steps:
- Install the necessary packages:
npm install @devexpress/dx-react-core @devexpress/dx-react-grid @devexpress/dx-react-grid-material-ui
- Import and use the components in your React application:
import React from 'react';
import { Grid, Table, TableHeaderRow } from '@devexpress/dx-react-grid-material-ui';
const App = () => {
// ... component logic
return (
<Grid rows={rows} columns={columns}>
<Table />
<TableHeaderRow />
</Grid>
);
};
export default App;
For more detailed information and advanced usage, refer to the official DevExtreme Reactive documentation.
Competitor Comparisons
A draggable and resizable grid layout with responsive breakpoints, for React.
Pros of react-grid-layout
- Lightweight and focused solely on grid layout functionality
- Highly customizable with a wide range of configuration options
- Supports both dragging and resizing of grid items
Cons of react-grid-layout
- Limited to grid layouts, lacking additional UI components
- Requires more manual setup for responsive designs
- Less comprehensive documentation compared to devextreme-reactive
Code Comparison
react-grid-layout:
import GridLayout from 'react-grid-layout';
<GridLayout
className="layout"
layout={layout}
cols={12}
rowHeight={30}
width={1200}
>
{children}
</GridLayout>
devextreme-reactive:
import { Grid, Table, TableHeaderRow } from '@devexpress/dx-react-grid-material-ui';
<Grid
rows={rows}
columns={columns}
>
<Table />
<TableHeaderRow />
</Grid>
Both libraries offer React components for creating grid-based layouts, but react-grid-layout focuses on drag-and-drop functionality, while devextreme-reactive provides a more comprehensive set of data grid features. react-grid-layout is ideal for creating dashboard-like interfaces, while devextreme-reactive is better suited for complex data presentation and manipulation.
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, grouping, and pivoting
- Better performance with large datasets, especially for client-side operations
- Extensive documentation and community support
Cons of ag-grid
- Steeper learning curve due to its complexity and extensive API
- More expensive licensing for enterprise features
- Heavier bundle size, which may impact initial load times
Code Comparison
ag-grid:
<AgGridReact
columnDefs={columnDefs}
rowData={rowData}
defaultColDef={defaultColDef}
onGridReady={onGridReady}
/>
devextreme-reactive:
<Grid
rows={rows}
columns={columns}
>
<Table />
<TableHeaderRow />
</Grid>
Key Differences
- ag-grid offers a more all-in-one solution, while devextreme-reactive follows a modular approach
- devextreme-reactive has a smaller footprint and may be easier to integrate into existing projects
- ag-grid provides more out-of-the-box functionality, whereas devextreme-reactive offers more flexibility in terms of customization
Both libraries are powerful data grid solutions, but they cater to different needs. ag-grid is better suited for complex enterprise applications with large datasets, while devextreme-reactive might be preferable for smaller projects or those requiring more granular control over grid components.
Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.
Pros of Material-UI
- Larger community and ecosystem, with more third-party components and resources
- More comprehensive documentation and examples
- Better out-of-the-box theming and customization options
Cons of Material-UI
- Steeper learning curve for complex customizations
- Larger bundle size, which may impact performance in some applications
Code Comparison
Material-UI:
import { Button } from '@mui/material';
function MyComponent() {
return <Button variant="contained">Click me</Button>;
}
DevExtreme Reactive:
import { Button } from 'devextreme-react/button';
function MyComponent() {
return <Button text="Click me" />;
}
Both libraries offer React components for building user interfaces, but Material-UI follows the Material Design guidelines more closely. DevExtreme Reactive provides a wider range of data visualization and grid components, making it potentially more suitable for data-heavy applications.
Material-UI has a more active development cycle and frequent updates, while DevExtreme Reactive offers a more stable API with less frequent breaking changes. The choice between the two depends on project requirements, team familiarity, and specific use cases.
🤖 Headless UI for building powerful tables & datagrids for TS/JS - React-Table, Vue-Table, Solid-Table, Svelte-Table
Pros of TanStack Table
- Lightweight and flexible, with a smaller bundle size
- Framework-agnostic, supporting React, Vue, Solid, and more
- Extensive documentation and active community support
Cons of TanStack Table
- Steeper learning curve for complex table configurations
- Less out-of-the-box UI components compared to DevExtreme Reactive
Code Comparison
TanStack Table:
import { useTable } from '@tanstack/react-table'
const Table = () => {
const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = useTable({ columns, data })
// Render table using the returned properties and methods
}
DevExtreme Reactive:
import { Grid, Table, TableHeaderRow } from '@devexpress/dx-react-grid-material-ui'
const GridComponent = () => (
<Grid rows={rows} columns={columns}>
<Table />
<TableHeaderRow />
</Grid>
)
Summary
TanStack Table offers a more flexible and lightweight solution for table management across multiple frameworks, while DevExtreme Reactive provides a more comprehensive set of UI components out-of-the-box. TanStack Table may require more setup for complex scenarios but offers greater customization, whereas DevExtreme Reactive provides a quicker start with pre-built components at the cost of a larger bundle size.
Bootstrap components built with React
Pros of react-bootstrap
- Lightweight and focused solely on Bootstrap components for React
- Extensive documentation and large community support
- Easier learning curve for developers familiar with Bootstrap
Cons of react-bootstrap
- Limited to Bootstrap-style components and customization
- May require additional libraries for complex data visualization or grid functionality
Code Comparison
react-bootstrap:
import { Button, Alert } from 'react-bootstrap';
function MyComponent() {
return (
<div>
<Button variant="primary">Click me</Button>
<Alert variant="success">Success message</Alert>
</div>
);
}
devextreme-reactive:
import { Grid, Table, TableHeaderRow } from '@devexpress/dx-react-grid-material-ui';
function MyComponent() {
return (
<Grid rows={rows} columns={columns}>
<Table />
<TableHeaderRow />
</Grid>
);
}
The code examples highlight the different focus areas of the libraries. react-bootstrap provides simple Bootstrap components, while devextreme-reactive offers more complex data grid functionality.
devextreme-reactive is a more comprehensive suite of React components, including advanced features like data grid, scheduler, and charts. It offers greater flexibility and customization options but may have a steeper learning curve and larger bundle size compared to react-bootstrap.
An enterprise-class UI design language and React UI library
Pros of Ant Design
- Larger community and ecosystem, with more frequent updates and contributions
- More comprehensive UI component library, covering a wider range of use cases
- Better documentation and examples, making it easier for developers to get started
Cons of Ant Design
- Heavier bundle size, which may impact performance for smaller applications
- Less flexibility in customization compared to DevExtreme Reactive's modular approach
- Steeper learning curve due to the extensive API and component options
Code Comparison
Ant Design:
import { Table } from 'antd';
const columns = [
{ title: 'Name', dataIndex: 'name', key: 'name' },
{ title: 'Age', dataIndex: 'age', key: 'age' },
];
<Table dataSource={data} columns={columns} />
DevExtreme Reactive:
import { Grid, Table, TableHeaderRow } from '@devexpress/dx-react-grid-material-ui';
<Grid rows={data} columns={columns}>
<Table />
<TableHeaderRow />
</Grid>
Both libraries offer similar functionality for creating data tables, but Ant Design's approach is more concise, while DevExtreme Reactive provides a more modular structure with separate components for different parts of the grid.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
DevExtreme Reactive ·
DevExtreme Reactive is a set of business React components that deeply integrate with Bootstrap and Material-UI libraries.
:warning: DevExtreme Reactive Components - Maintenance Support Mode
DevExtreme Reactive component libraries are in maintenance support mode. No new features/capabilities will be added to DevExtreme Reactive component libraries in the future (end-of-life: December 2025).
Developing a React App? Check out our updated React UI Suite instead If you are considering React for an upcoming software project or have used DevExtreme Reactive components in the past, please visit js.devexpress.com/react and download a free trial version of DevExtreme React UI â over 70+ components designed to help you build your best, without limits or compromise.
Why DevExtreme Reactive is now in maintenance support mode?
DevExtreme Reactive began as an alternative to the main DevExtreme product line with the following objectives:
- Provide fully native components for Angular, React, and Vue. Reduce maintenance costs due to a shared codebase.
- Offer users of popular open-source UI suites such as Bootstrap, Vuetify, and MUI a set of rich components (DataGrid, Scheduler, Charts).
- Introduce more flexibility via a comprehensive API and built-in plugin system.
Since the original release of DevExtreme Reactive, we reached the following conclusions:
- Of all our product suites, only the React line (with MUI integration) generated user interest. That market trend forced us to terminate our Reactive Angular and Reactive Vue produce lines.
- Due to the popularity of DevExtreme Reactive components for MUI, MUI chose to launch their own set of UI components.
- Based on research, we discovered that developers preferred out-of-the-box solutions versus writing highly customizable code manually. Accordingly, most opted to use React UI components shipping in our main DevExtreme product library.
At present, we must maintain two competitive product lines in parallel - using resources that could be better spent delivering additional value for our primary JS/TS product line (js.devexpress.com/react).
What does maintenance support mode mean for you?
- Continued Support: We will continue to provide DevExtreme Reactive support to those with an active DevExpress subscription (until the end-ofâlife: December 2025).
- Migration Resources: Our goal is to help DevExtreme Reactive users migrate to DevExtreme React. We are preparing guides to help with this transition. These guides will be available on our website when we release v24.2 (mid-December 2024). Please see the timeline below for additional information in this regard.
Timeline
- With our v24.1 release, our Reactive product line moved to maintenance mode. We will no longer develop/deliver new functionality.
- Once v24.2 ships (mid-December 2024), we will prepare and publish basic migration/transition guides (from the Reactive line to our DevExtreme React product suite). While we cannot address all usage scenarios within these guides (because product feature sets do not fully overlap), we will do our best to document solutions for all basic use cases.
- Post v24.2 release, our Reactive line will be deprecated.
- We will continue to support the Reactive line and its users for two more release cycles (v25.1 and v25.2). This should give everyone enough time to transition away from Reactive to DevExtreme React. End of life for our Reactive product line will be announced prior to the release of v25.2 (mid-December 2025).
We appreciate your understanding and support during this transition period. If you have questions or need assistance during transition, please submit a support ticket via the DevExpress Support Center. We will be happy to follow up.
DevExtreme Reactive Common Features
- Composable and extendable plugin-based architecture
- 100% Native React (no jQuery or other dependencies)
- High performance by using React best practicies
- Material-UI, Bootstrap 4 and Bootstrap 3 integration with seamless theming
- Controlled (stateless) and uncontrolled (stateful) modes
- Redux integration with state persistence and time-traveling
React Data Grid
React Chart
React Scheduler
Note: You can also use the alternative project with 65+ React components. Refer to the comparison blog post for more information.
License
Support & Feedback
Top Related Projects
A draggable and resizable grid layout with responsive breakpoints, for React.
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.
🤖 Headless UI for building powerful tables & datagrids for TS/JS - React-Table, Vue-Table, Solid-Table, Svelte-Table
Bootstrap components built with React
An enterprise-class UI design language and React UI library
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot