Skip to content

SyncfusionExamples/syncfusion-react-grid-demo

Repository files navigation

Syncfusion React Grid Demo Application

A comprehensive demonstration of Syncfusion React Grid capabilities with multiple data management patterns including client-side virtualization, server-side virtualization, real-time data streaming, and advanced data binding.

πŸ“‹ Overview

This application showcases six distinct grid implementations, each demonstrating specific use cases and performance optimization strategies for handling data at scale:

  • Grid - Basic data binding with sorting, filtering, and paging
  • GridFeature - Core features with custom templates and styling
  • GridPagination - Pagination with configurable page sizes
  • GridDataAPI - Server-side virtualization for millions of rows
  • GridPerformance - Virtual scrolling with dynamic row loading
  • LiveData - Real-time data streaming with live updates

🎯 Key Features

Data Management

  • βœ… Real-time data binding and updates
  • βœ… Client-side and server-side virtualization
  • βœ… Advanced filtering capabilities
  • βœ… Multi-column sorting
  • βœ… Configurable pagination
  • βœ… Virtual scrolling optimization

Performance

  • βœ… Handles millions of rows efficiently
  • βœ… Optimized DOM rendering
  • βœ… Intelligent scroll detection
  • βœ… Smart caching mechanisms
  • βœ… Minimal memory footprint
  • βœ… High-frequency data stream support

Features

  • βœ… Editing capabilities
  • βœ… Custom column templates
  • βœ… Summary aggregation
  • βœ… Export capabilities
  • βœ… Responsive design
  • βœ… Shadow DOM support

πŸš€ Quick Start

Prerequisites

  • Node.js 16+
  • npm or yarn package manager

Installation

# Install dependencies
npm install

# Install Syncfusion React Grid
npm install @syncfusion/react-grid

Configuration

Import Syncfusion Grid styles in your main entry file:

// In main.tsx
import '@syncfusion/react-grid/styles/material.css'

Run Development Server

npm run dev

The application will be available at http://localhost:5173

πŸ“¦ Project Structure

src/
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ Grid.tsx           # Basic grid with core features
β”‚   β”œβ”€β”€ GridFeature.tsx    # Grid with templates and styling
β”‚   β”œβ”€β”€ GridPagination.tsx # Pagination grid
β”‚   β”œβ”€β”€ GridDataAPI.tsx    # Server-side virtualization
β”‚   β”œβ”€β”€ GridPerformance.tsx# Virtual scrolling
β”‚   β”œβ”€β”€ LiveData.tsx       # Real-time data streaming
β”‚   └── Navbar.tsx         # Navigation component
β”œβ”€β”€ pages/
β”‚   β”œβ”€β”€ Home.tsx           # Landing page
β”‚   β”œβ”€β”€ Installation.tsx   # Setup guide
β”‚   β”œβ”€β”€ Datasource.tsx     # Server-side virtualization demo
β”‚   β”œβ”€β”€ VisualTemplate.tsx # Core features showcase
β”‚   β”œβ”€β”€ Pagination.tsx     # Pagination demo
β”‚   β”œβ”€β”€ Virtualization.tsx # Virtual scrolling demo
β”‚   └── TradeView.tsx      # Real-time streaming demo
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ data.ts            # Sample datasets
β”‚   β”œβ”€β”€ data1.ts           # Additional sample data
β”‚   β”œβ”€β”€ data2.tsx          # Employee data
β”‚   β”œβ”€β”€ globals.css        # Global styles
β”‚   └── grid.css           # Grid-specific styles
β”œβ”€β”€ App.tsx                # Main app component
└── main.tsx               # Entry point

πŸ“Š Grid Implementation Details

Grid - Basic Data Binding

Location: /installation

  • Core Syncfusion Grid features
  • Sorting, filtering, and paging capabilities
  • Custom data binding
  • Professional demo layout

GridFeature - Visual Templates

Location: /visual-template

  • Custom column templates
  • Color-coded styling
  • Avatar components
  • Advanced filtering options
  • Multi-column sorting

GridPagination - Pagination

Location: /pagination

  • Configurable page sizes
  • Navigation controls
  • Optimized for large datasets
  • Performance metrics
  • Smooth page transitions

GridDataAPI - Server-Side Virtualization

Location: /data-source

  • Handles millions of rows efficiently
  • Server-side data loading
  • Intelligent scroll detection
  • Optional caching mechanism
  • Minimal memory management

GridPerformance - Virtual Scrolling

Location: /virtualization

  • Client-side virtual rendering
  • Handles extremely large datasets
  • Smooth scrolling performance
  • Responsive user interactions
  • Optimized DOM rendering

LiveData - Real-Time Streaming

Location: /livedata

  • Continuous data updates
  • Live data stream integration
  • Sorting on dynamic data
  • High-frequency update support
  • Scalable architecture

πŸ› οΈ Technology Stack

  • Frontend Framework: React 18+
  • Language: TypeScript
  • Build Tool: Vite
  • UI Component Library: Syncfusion React Grid
  • Styling: Tailwind CSS
  • Routing: React Router DOM
  • Data Management: Syncfusion DataManager
  • Styling Tools: PostCSS

βš™οΈ Available Scripts

# Development server with HMR
npm run dev

# Production build
npm run build

# Preview production build
npm run preview

# Run linting
npm run lint

🎨 Styling

The application uses Tailwind CSS for responsive styling with a professional blue and gradient theme:

  • Primary colors: Blue (500-700)
  • Accent colors: Teal, Purple, Orange, Amber (theme-specific)
  • Shadow effects: Enhanced for grid prominence
  • Responsive breakpoints: Mobile, tablet, desktop

πŸ“ˆ Performance Considerations

Memory Management

  • Virtual scrolling reduces DOM nodes
  • Server-side virtualization manages backend data
  • Intelligent caching prevents re-fetching
  • Streaming data with bounded buffers

Rendering Optimization

  • React components with memo optimization
  • Lazy loading of grid components
  • Efficient event handling
  • Optimized change detection

Scalability

  • Handles 100,000+ rows client-side
  • Supports millions of rows server-side
  • Real-time updates without lag
  • Consistent performance across browsers

πŸ”Œ API Integration

The GridDataAPI component demonstrates server-side data integration using Syncfusion DataManager with UrlAdaptor:

const data = new DataManager({
  url: 'your-api-endpoint',
  adaptor: new UrlAdaptor(),
  pageSize: 50
})

πŸ“± Browser Support

  • Chrome (latest)
  • Firefox (latest)
  • Safari (latest)
  • Edge (latest)

πŸ” Best Practices

  1. Data Binding: Use appropriate virtualization method based on dataset size
  2. Performance: Implement virtual scrolling for datasets > 1000 rows
  3. Caching: Enable server-side caching when using remote data
  4. Memory: Monitor DOM size in browser DevTools
  5. Responsiveness: Test grid behavior across screen sizes

πŸ“š Resources

πŸ’‘ Common Use Cases

Large Dataset Display

Use GridDataAPI (Server-Side Virtualization) for millions of rows with server-side filtering and sorting.

Real-Time Monitoring

Use LiveData (Real-Time Streaming) for live data feeds with continuous updates.

Data Entry Forms

Use GridFeature (Visual Templates) with inline editing for data management operations.

Analytics Dashboard

Combine GridPagination (Pagination) with aggregations for summarized data views.

🀝 Contributing

For improvements or bug reports, please follow the project's code standards:

  • Maintain TypeScript type safety
  • Use functional components with hooks
  • Keep components modular and reusable
  • Follow the existing styling patterns

πŸ“„ License

This project is provided as-is for educational and demonstration purposes.

About

A pure React demo showcasing the Syncfusion React DataGrid with core features such as data binding, column filtering, and editing. This project provides a simple, runnable example designed for quick evaluation and live demonstrations without wrapper abstractions.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages