Datatables are a complex beast. If you ever built data-heavy business applications, you probably know you'll eventually need a lot of features to build interactive, custom views. Deciding for a grid component is quite a commitment: It needs to be flexible enough to adapt to your dataset and use cases.
I have collected some of our favourite datatable components for Vue.js in this article.
I'll keep the list updated if I find a shiny new one. If you think I should include one in particular, share it with us on Twitter @MadeWithVueJS!
The grid component by Bryntum is definitely an enterprise-grade solution. They have all the basic features you'd expect – sorting, filtering, inline editing, paging,.. – and also some handy extras like drag and drop row reordering, locked columns or context menus to show and hide columns.
They're really dedicated to performance, and optimize for quick initial rendering and frames per second when scrolling. If that's high on your priority list, you should definitely check them out. You can read more about how their performance compares to other libraries in this article !
It's a pure JS grid, but comes with a Vue wrapper and a lot of useful demos to help you integrate it in your Vue apps.
Bryntum offers other UI components as well (like a Scheduler or Gantt chart), but you can buy a license for all of them individually.
Maybe you know the Kendo UI library from back in your jQuery days – we did! They offer a (growing) range of native Vue components as well as Vue wrappers for their whole jQuery library.
Their grid is one of the components they re-built from the ground up with Vue (along with charts, forms and more). Compared to their grid wrapper, it offers a better performance in terms of reactivity and options to customize the rendering of the grid cells.
Besides basic CRUD functions, grouping, filtering, paging and the usual suspects, they have some nifty little features like reordering columns with drag and drop, scroll modes (including virtual scrolling), internationalization and Excel/PDF export.
We found it easy to use and well-documented!
The Handsontable JavaScript component offers wrappers for Vue 2 and 3. This grid component feels closest to the UX of an Excel or Google sheet. It will probably feel very familiar to your users as well when editing data.
It integrates with any data source and comes with lots of features for custom views, like freezing and resizing rows, as well as powerul context menus.
It's a commercial project, but can be used for free for personal projects and to test it.
The Syncfusion data grid is part of their extensive UI library. It’s a workhorse that can handle high volumes of data without any performance loss.
The tables support inline CRUD operations, filtering, data export, stacked headers, row grouping and more. We especially love Syncfusion’s focus on being mobile- and touch-friendly as well as supporting WAI-ARIA for accessibility. Data binding is very flexible, as it can handle various local and remote sources. Together with JSON it’s a great choice for SPAs.
This grid is perfect for enterprise-level and data-heavy applications. You don’t have to be an enterprise to be able to afford it, though. Syncfusion’s whole Vue UI library is available under a free community license for individuals and smaller companies, which is more than awesome in our opinion.
ag-Grid is a really sophisticated datatable solution. "ag" stands for agnostic, meaning it's available for a lot of different JS frameworks.
Definitely look into it if you need to build complex tables. It is probably overkill for a small project, but it might be the perfect fit if you need advanced functions like drag-and-drop for rows, grouping or live updates. Also, it has been optimized for performance, if you have to handle big data sets.
There's a free version to try it out, but for enterprise applications you will probably need an extended license.
The data grid component included in the jQWidgets UI framework is basically as powerful as Google Sheets. It's a responsive grid with sorting, filtering, drag and drop, custom keyboard navigation, nested grids, exports and many more features. It's suitable for large datasets that users can manipulate.
The jQWidgets framework also offers more components – but it is not free. They have great pricing for smaller projects and single developers too though. It comes with 500 demos for the grid component alone, and is also available for Angular, React and jQuery.
RevoGrid is a powerful open-source spreadsheet-like datatable solution. It's a JS grid offering Vue 2 and 3 components.
RevoGrid is focused on performance, supporting large data sets & complex operations. It offers a lot of advanced features from cell editing to drag & drop or exporting.
This open-source grid is built with Vue 3. vue3-easy-data-table
540 has been developed as an alternative Vue 3 version of Vuetify tables, and might be right for you if you're looking for something simple yet customizable.
It does not come with super advanced features like drag & drop reordering or inline editing, but it is actively evolving and provides useful basics like filtering, multiselection and fixed columns.
You can use it in client-side or server-side mode to decide how to load your data.
Surely Vue Table 621 is a Vue 3 table component from the Ant Design Vue team. It supports many customization options like automatic cell heights, fixed columns, nested rows, drag & drop, chart integration and more.
The component is performance-optimized for big data sets, and you can use it together with any component library.
Surley Vue Table is open-source and free to use with a watermark. You can remove the watermark with a yearly license.
If you just want to display data and have no specific or complex requirements you could also take a look at the components included in popular UI libraries and frameworks. They're usually pretty solid and already offer (pretty advanced!) features like sorting, paging, filtering, selection, inline editing and more.