Giới thiệu TanStack Table
TanStack Table (trước đây là React Table) là một headless table library — một trong những thư viện quản lý bảng dữ liệu mạnh mẽ nhất cho React.- 📦 Không có UI - bạn tự xây dựng giao diện
- 🔧 Linh hoạt - tích hợp với bất kỳ UI framework nào (shadcn/ui, Material-UI, v.v.)
- ⚡ Hiệu năng cao - tối ưu hóa render, chỉ update những gì cần thiết
- 🎯 Tính năng mạnh mẽ - sắp xếp, lọc, phân trang, gom nhóm, ghim cột…
- 📱 Đa nền tảng - hỗ trợ React, Vue, Angular, Svelte…
Tính năng Chính
Quản lý cột (Column Management)
Sắp xếp thứ tự cột (Column Ordering)
Sắp xếp thứ tự cột (Column Ordering)
Ghim cột (Column Pinning)
Ghim cột (Column Pinning)
Thay đổi kích thước cột (Column Sizing)
Thay đổi kích thước cột (Column Sizing)
Ẩn/hiện cột (Column Visibility)
Ẩn/hiện cột (Column Visibility)
Xử lý dữ liệu (Data Manipulation)
Sắp xếp (Sorting)
Sắp xếp (Sorting)
Lọc (Filtering)
Lọc (Filtering)
Gom nhóm (Grouping)
Gom nhóm (Grouping)
Tổng hợp (Aggregation)
Tổng hợp (Aggregation)
Mở rộng/thu gọn dòng (Expanding)
Mở rộng/thu gọn dòng (Expanding)
Phân trang (Pagination)
Phân trang phía client (Client-side)
Phân trang phía client (Client-side)
Phân trang phía server (Server-side)
Phân trang phía server (Server-side)
Chọn dòng (Row Selection)
Chọn một hoặc nhiều dòng
Chọn một hoặc nhiều dòng
Ghim dòng (Row Pinning)
Ghim dòng (Row Pinning)
Hiệu năng (Performance)
Virtual Scrolling
Virtual Scrolling
Cài đặt
Các tính năng nâng cao
Faceting — đếm giá trị duy nhất
Faceting giúp bạn biết có bao nhiêu giá trị khác nhau trong một cột. Ví dụ: cột “Status” có thể có 3 dòng “active” và 2 dòng “inactive”. Faceting trả về thông tin này để bạn hiển thị bộ lọc dạng dropdown với số lượng. Prompt mẫu:Click-outside và Keyboard Navigation
TanStack Table hỗ trợ điều hướng bằng bàn phím (phím mũi tên di chuyển giữa các ô, Enter để chọn…) và detect click outside để đóng dropdown, popup. Các tính năng này được bật mặc định khi sử dụng các row models có sẵn.Tích hợp với shadcn/ui
TanStack Table là “bộ não” xử lý dữ liệu, còn shadcn/ui cung cấp giao diện bảng đẹp sẵn. Khi kết hợp, bạn có cả logic mạnh mẽ lẫn UI chuyên nghiệp. shadcn/ui cung cấp các component:Table, TableHeader, TableBody, TableHead, TableRow, TableCell. Bạn dùng chúng thay cho thẻ HTML <table> thông thường.
Prompt mẫu:
API Utilities
Các hàm tiện ích của TanStack Table:Best Practices
Tối ưu columns với useMemo
useMemo để định nghĩa columns không bị tính lại mỗi lần render, giúp bảng hoạt động mượt hơn.Phân trang cho dữ liệu lớn
Khai báo TypeScript types
Tách component riêng
Xử lý trạng thái loading và error
Virtual scrolling cho bảng lớn
Plugins & Extensions
TanStack Table có hệ sinh thái plugins cho nhiều framework:- @tanstack/react-table - Core library cho React
- @tanstack/match-sorter-utils - Fuzzy filtering (lọc mờ, không cần khớp chính xác)
- @tanstack/solid-table - Hỗ trợ Solid.js
- @tanstack/vue-table - Hỗ trợ Vue 3
- @tanstack/svelte-table - Hỗ trợ Svelte
Thuật ngữ
Những thuật ngữ thường gặp khi làm việc với TanStack Table:Cách Prompt với Claude Code
Dưới đây là các prompt mẫu bạn có thể dùng trực tiếp để yêu cầu Claude Code tạo bảng TanStack Table.Tạo bảng cơ bản với sort và filter
Thêm phân trang
Thêm chọn dòng
Thêm ẩn/hiện cột
Bảng phân trang server-side
Gom nhóm theo cột
Ghim cột khi cuộn ngang
Bảng với dữ liệu lớn (virtual scrolling)
Tài nguyên
- Official Website: https://tanstack.com/table
- GitHub: https://github.com/TanStack/table
- Documentation: https://tanstack.com/table/v8/docs
- Examples: https://github.com/TanStack/table/tree/main/examples
- Discord Community: https://tanstack.com/discord