Vue Good Table (and its Vue 3 successor, vue-good-table-next) is a popular, friendly Vue table component. It's a sensible default when you want sort, paginate, search, and custom cells without much fuss.
Where it shows its age: row virtualization, column pinning, and grouping with aggregations either aren't first-class or require a fair amount of manual work. Simple Table for Vue ships those features in one source-available Vue 3 package.
This article compares the two on bundle, virtualization, grouping, editing, and idiomatic Vue 3 ergonomics so you can decide if Simple Table for Vue is the better fit.
Quick comparison
| Feature | Vue Good Table Next | Simple Table for Vue |
|---|---|---|
| License | MIT | Community License |
| Vue 3 support | Yes (vue-good-table-next) | Yes (idiomatic) |
| Composition API + <script setup> | Workable | First-class |
| Row virtualization | No | Built-in |
| Column virtualization | No | Built-in |
| Column pinning | No | Built-in |
| Row grouping with aggregations | Manual / DIY | Built-in |
| Inline cell editing | Slot-based | Built-in |
| Bundle size (gzipped) | ~50 kB | 84.6 kB |
Stay with Vue Good Table when…
- Your needs are read-heavy: sort, paginate, search, custom cells.
- Datasets are small (under a few thousand rows) and virtualization isn't needed.
- You don't need column pinning or grouping with aggregations.
- Your team prefers Vue Good Table's specific theming and slot patterns.
Switch to Simple Table for Vue when…
- You need row + column virtualization for 10k+ rows.
- You want column pinning, grouping with aggregations, and inline editing as built-in primitives.
- You want idiomatic Vue 3 Composition API + <script setup>.
- You also build React / Angular / Svelte / Solid surfaces and want a shared engine.
Real-world scenarios
Internal admin tables, ~500 rows each
Sort, paginate, search, custom cells. No virtualization needed.
Stay on Vue Good Table—it's well-suited for this scale.
Reporting tool, 50k+ rows, grouping with aggregations
Expanded/collapsed groups with sum and avg footers, virtualization required.
Switch to Simple Table—virtualization and grouping are built-in.
Greenfield Vue 3 SaaS
New Vue 3 project, want a forward-looking grid that won't outgrow.
Pick Simple Table for Vue—it scales from 100 to 1M rows without changes.
Wide table with frozen first columns
30+ columns, need to pin the first 2–3 columns.
Switch to Simple Table—pinning is first-class.
Frequently asked questions
- Is Vue Good Table actively maintained?
- vue-good-table-next is the Vue 3 successor; the original vue-good-table is largely Vue 2-era. Activity is moderate; complex use cases sometimes outpace it.
- How big is the migration?
- Usually a few hours per table. Map column definitions to ColumnDefs, adapt your rows to Simple Table's row shape, and convert slot-based templates to cellRenderer Vue components.
- Does Simple Table support search and global filtering?
- Yes. Column filters are first-class; combine them for global-search-like behavior, or pre-filter rows in your composable.
The verdict
Vue Good Table is fine for read-heavy admin views with modest row counts. The moment you need virtualization, pinning, or grouping with aggregations, Simple Table for Vue is the focused source-available upgrade.
Vue Good Table is MIT and Simple Table is source-available (free for pre-revenue teams); both are Vue 3 compatible. The decision is about feature scope and dataset size, not licensing.