Element Plus is a popular Vue 3 component library, especially in Asia and across enterprise Vue teams. el-table is its data grid component—mature, feature-rich, and tightly integrated with the rest of Element Plus.
If Element Plus is your design system, you'll keep el-table. If you pulled in Element Plus mainly for el-table, Simple Table for Vue is the focused alternative: an MIT-licensed Vue 3 data grid that runs in Composition API + <script setup>, Nuxt 3, and Nuxt 4 without a design system tax.
This article walks through the trade-offs—bundle, virtualization, grouping, editing, and idiomatic Vue 3 ergonomics.
Quick comparison
| Feature | Element Plus el-table | Simple Table for Vue |
|---|---|---|
| License | MIT | MIT |
| Bundle size (gzipped) | 200–400+ kB (suite + theme + icons) | ~70 kB |
| Vue 3 + Composition API | Yes | Yes (idiomatic) |
| Nuxt 3 / Nuxt 4 SSR | Yes | Yes |
| Row virtualization | el-table-v2 (separate component) | Built-in |
| Frozen columns / pinning | fixed='left' / 'right' | Yes |
| Row grouping with aggregations | Manual via summary-method | Built-in |
| Inline cell editing | Slot-based | Built-in |
| Theming | Element Plus theme system | CSS variables, BYO |
Stay with el-table when…
- Element Plus is your design system across forms, dialogs, layout.
- Your team is invested in Element Plus slot patterns and Element icons.
- You depend on Element Plus-specific components (form integration, dialog patterns).
- Standardized theming across the suite is more important than bundle size.
Switch to Simple Table for Vue when…
- Element Plus el-table is the only Element Plus piece you actually use heavily.
- You want true row + column virtualization in the same component as the rest of your features.
- You want grouping with aggregations and inline editing as built-in primitives.
- Bundle size matters—target ~70 kB instead of 200–400+ kB.
- You also build React / Angular / Svelte / Solid surfaces and want a shared engine.
Real-world scenarios
Element Plus design system
Element Plus is the design system; el-table fits visually with the rest.
Stay with el-table—keep the design system coherent.
Element Plus pulled in just for el-table
Other components are plain Vue + Tailwind; you added Element Plus for the table only.
Switch to Simple Table—simplify the build and cut 200–400 kB.
Reporting view with grouping + virtualization
You currently use el-table-v2 for virtualization and a different component for grouping. They're separate.
Switch to Simple Table—both features in one component.
Frequently asked questions
- Can I keep Element Plus for forms?
- Yes. Many teams keep Element Plus for forms and dialogs and switch only the data grid.
- Will el-table-v2 work for my use case?
- el-table-v2 is virtualization-only and a different API surface than el-table. If you need both grouping and virtualization, you're juggling two components. Simple Table covers both in one.
- How big is the migration?
- Usually a few hours per table. Map el-table-column children to HeaderObject entries; convert slot templates to cellRenderer Vue components.
The verdict
Element Plus el-table is the right choice if Element Plus is your design system. Simple Table for Vue is the better trade when el-table is the only Element Plus piece you actually need.
You skip the suite + theme + icons cost and get true virtualization + grouping in one component.