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 MIT-licensed 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 | MIT |
| 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 | ~70 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 HeaderObjects, 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 MIT upgrade.
Both are MIT and Vue 3 compatible. The decision is about feature scope and dataset size, not licensing.