Docs
Table API Reference
- Table
- Table_Core
- Table_CoreProperties
- Table_Table
- Table_Columns
- Table_Rows
- Table_Headers
- Table_Plugins
- TableOptions
- TableOptions_All
- TableOptions_Core
- TableOptions_Table
- TableOptions_Columns
- TableOptions_Rows
- TableOptions_Cell
- TableOptions_Plugins
- TableState
- TableState_All
- TableState_Plugins
- TableMeta
- TableFeature
- TableFeatures
- StockFeatures
- CoreFeatures
- constructTable
- constructTableHelper
- createTableStore
- tableOptions
- tableFeatures
- getInitialTableState
- table_setOptions
- table_mergeOptions
- table_reset
- table_getRowModel
- table_getRow
- table_getRowCount
- table_getRowId
- TableHelperOptions
- TableHelper_Core
- OnChangeFn
- Updater
- DebugOptions
- useTable
- createTableHook
- ReactTable
- AppReactTable
- CreateTableHookOptions
- Subscribe
- SubscribeProps
- FlexRender
- flexRender
- FlexRenderProps
- Renderable
- AppTableComponent
- AppTablePropsWithSelector
- AppTablePropsWithoutSelector
Column API Reference
- Column
- Column_Core
- Column_CoreProperties
- Column_Column
- Column_Plugins
- ColumnDef
- ColumnDefBase
- AccessorColumnDef
- DisplayColumnDef
- GroupColumnDef
- ColumnDefTemplate
- ColumnHelper
- ColumnDefaultOptions
- ColumnMeta
- createColumnHelper
- constructColumn
- column_getFlatColumns
- column_getLeafColumns
- column_getIndex
- column_getIsFirstColumn
- column_getIsLastColumn
- column_getSize
- column_getStart
- column_getAfter
- AccessorFn
- DeepKeys
- DeepValue
- AppColumnHelper
Row API Reference
- Row
- Row_Core
- Row_CoreProperties
- Row_Row
- Row_Plugins
- RowData
- RowModel
- constructRow
- row_getValue
- row_getUniqueValues
- row_renderValue
- row_getAllCells
- row_getAllCellsByColumnId
- row_getVisibleCells
- row_getLeftVisibleCells
- row_getCenterVisibleCells
- row_getRightVisibleCells
- row_getAllVisibleCells
- row_getLeafRows
- row_getParentRow
- row_getParentRows
- RowModelFns
- RowModelFns_Core
- RowModelFns_Plugins
- createCoreRowModel
- createFilteredRowModel
- createSortedRowModel
- createGroupedRowModel
- createExpandedRowModel
- createPaginatedRowModel
- createFacetedRowModel
- createFacetedMinMaxValues
- createFacetedUniqueValues
- Table_RowModels_Core
- Table_RowModels_Filtered
- Table_RowModels_Sorted
- Table_RowModels_Grouped
- Table_RowModels_Expanded
- Table_RowModels_Paginated
- Table_RowModels_Faceted
Cell API Reference
Header API Reference
- Header
- Header_Core
- Header_CoreProperties
- Header_Header
- Header_Plugins
- HeaderGroup
- HeaderGroup_Core
- HeaderGroup_Header
- HeaderGroup_Plugins
- HeaderContext
- constructHeader
- buildHeaderGroups
- header_getContext
- header_getLeafHeaders
- header_getSize
- header_getStart
- header_getResizeHandler
- table_getHeaderGroups
- table_getLeftHeaderGroups
- table_getCenterHeaderGroups
- table_getRightHeaderGroups
- table_getFooterGroups
- table_getLeftFooterGroups
- table_getCenterFooterGroups
- table_getRightFooterGroups
- table_getFlatHeaders
- table_getLeftFlatHeaders
- table_getCenterFlatHeaders
- table_getRightFlatHeaders
- table_getLeafHeaders
- table_getLeftLeafHeaders
- table_getCenterLeafHeaders
- table_getRightLeafHeaders
- AppHeaderContext
- AppHeaderComponent
- AppHeaderPropsWithSelector
- AppHeaderPropsWithoutSelector
Features API Reference
- stockFeatures
- coreFeatures
- coreCellsFeature
- coreColumnsFeature
- coreHeadersFeature
- coreRowModelsFeature
- coreRowsFeature
- coreTablesFeature
- columnFilteringFeature
- columnFacetingFeature
- columnGroupingFeature
- columnOrderingFeature
- columnPinningFeature
- columnResizingFeature
- columnSizingFeature
- columnVisibilityFeature
- globalFilteringFeature
- rowExpandingFeature
- rowPaginationFeature
- rowPinningFeature
- rowSelectionFeature
- rowSortingFeature
- Column_ColumnFiltering
- Column_ColumnFaceting
- Column_ColumnGrouping
- Column_ColumnOrdering
- Column_ColumnPinning
- Column_ColumnResizing
- Column_ColumnSizing
- Column_ColumnVisibility
- Column_GlobalFiltering
- Column_RowSorting
- Table_ColumnFiltering
- Table_ColumnFaceting
- Table_ColumnGrouping
- Table_ColumnOrdering
- Table_ColumnPinning
- Table_ColumnResizing
- Table_ColumnSizing
- Table_ColumnVisibility
- Table_GlobalFiltering
- Table_RowExpanding
- Table_RowPagination
- Table_RowPinning
- Table_RowSelection
- Table_RowSorting
- Row_ColumnFiltering
- Row_ColumnGrouping
- Row_ColumnPinning
- Row_ColumnVisibility
- Row_RowExpanding
- Row_RowPinning
- Row_RowSelection
- Header_ColumnResizing
- Header_ColumnSizing
- TableOptions_ColumnFiltering
- TableOptions_ColumnGrouping
- TableOptions_ColumnOrdering
- TableOptions_ColumnPinning
- TableOptions_ColumnResizing
- TableOptions_ColumnSizing
- TableOptions_ColumnVisibility
- TableOptions_GlobalFiltering
- TableOptions_RowExpanding
- TableOptions_RowPagination
- TableOptions_RowPinning
- TableOptions_RowSelection
- TableOptions_RowSorting
- TableState_ColumnFiltering
- TableState_ColumnGrouping
- TableState_ColumnOrdering
- TableState_ColumnPinning
- TableState_ColumnResizing
- TableState_ColumnSizing
- TableState_ColumnVisibility
- TableState_GlobalFiltering
- TableState_RowExpanding
- TableState_RowPagination
- TableState_RowPinning
- TableState_RowSelection
- TableState_RowSorting
- ColumnDef_ColumnFiltering
- ColumnDef_ColumnGrouping
- ColumnDef_ColumnPinning
- ColumnDef_ColumnResizing
- ColumnDef_ColumnSizing
- ColumnDef_ColumnVisibility
- ColumnDef_GlobalFiltering
- ColumnDef_RowSorting
- ColumnDef_Plugins
- ColumnPinningState
- ColumnSort
- ColumnFilter
- PaginationState
- RowPinningState
- columnResizingState
- ColumnFiltersState
- ColumnOrderState
- ColumnSizingState
- ColumnVisibilityState
- ExpandedState
- GroupingState
- RowSelectionState
- SortingState
- FilterFn
- FilterFns
- FilterMeta
- SortFn
- SortFns
- AggregationFns
- filterFns
- sortFns
- aggregationFns
Legacy API Reference
- Legacy API Overview
- useLegacyTable
- legacyCreateColumnHelper
- getCoreRowModel
- getFilteredRowModel
- getSortedRowModel
- getGroupedRowModel
- getExpandedRowModel
- getPaginationRowModel
- getFacetedRowModel
- getFacetedMinMaxValues
- getFacetedUniqueValues
- LegacyRowModelOptions
- LegacyTable
- LegacyTableOptions
- LegacyReactTable
- LegacyColumnDef
- LegacyColumn
- LegacyRow
- LegacyCell
- LegacyHeader
- LegacyHeaderGroup
Table API Reference
- Table
- Table_Core
- Table_CoreProperties
- Table_Table
- Table_Columns
- Table_Rows
- Table_Headers
- Table_Plugins
- TableOptions
- TableOptions_All
- TableOptions_Core
- TableOptions_Table
- TableOptions_Columns
- TableOptions_Rows
- TableOptions_Cell
- TableOptions_Plugins
- TableState
- TableState_All
- TableState_Plugins
- TableMeta
- TableFeature
- TableFeatures
- StockFeatures
- CoreFeatures
- constructTable
- constructTableHelper
- createTableStore
- tableOptions
- tableFeatures
- getInitialTableState
- table_setOptions
- table_mergeOptions
- table_reset
- table_getRowModel
- table_getRow
- table_getRowCount
- table_getRowId
- TableHelperOptions
- TableHelper_Core
- OnChangeFn
- Updater
- DebugOptions
- useTable
- createTableHook
- ReactTable
- AppReactTable
- CreateTableHookOptions
- Subscribe
- SubscribeProps
- FlexRender
- flexRender
- FlexRenderProps
- Renderable
- AppTableComponent
- AppTablePropsWithSelector
- AppTablePropsWithoutSelector
Column API Reference
- Column
- Column_Core
- Column_CoreProperties
- Column_Column
- Column_Plugins
- ColumnDef
- ColumnDefBase
- AccessorColumnDef
- DisplayColumnDef
- GroupColumnDef
- ColumnDefTemplate
- ColumnHelper
- ColumnDefaultOptions
- ColumnMeta
- createColumnHelper
- constructColumn
- column_getFlatColumns
- column_getLeafColumns
- column_getIndex
- column_getIsFirstColumn
- column_getIsLastColumn
- column_getSize
- column_getStart
- column_getAfter
- AccessorFn
- DeepKeys
- DeepValue
- AppColumnHelper
Row API Reference
- Row
- Row_Core
- Row_CoreProperties
- Row_Row
- Row_Plugins
- RowData
- RowModel
- constructRow
- row_getValue
- row_getUniqueValues
- row_renderValue
- row_getAllCells
- row_getAllCellsByColumnId
- row_getVisibleCells
- row_getLeftVisibleCells
- row_getCenterVisibleCells
- row_getRightVisibleCells
- row_getAllVisibleCells
- row_getLeafRows
- row_getParentRow
- row_getParentRows
- RowModelFns
- RowModelFns_Core
- RowModelFns_Plugins
- createCoreRowModel
- createFilteredRowModel
- createSortedRowModel
- createGroupedRowModel
- createExpandedRowModel
- createPaginatedRowModel
- createFacetedRowModel
- createFacetedMinMaxValues
- createFacetedUniqueValues
- Table_RowModels_Core
- Table_RowModels_Filtered
- Table_RowModels_Sorted
- Table_RowModels_Grouped
- Table_RowModels_Expanded
- Table_RowModels_Paginated
- Table_RowModels_Faceted
Cell API Reference
Header API Reference
- Header
- Header_Core
- Header_CoreProperties
- Header_Header
- Header_Plugins
- HeaderGroup
- HeaderGroup_Core
- HeaderGroup_Header
- HeaderGroup_Plugins
- HeaderContext
- constructHeader
- buildHeaderGroups
- header_getContext
- header_getLeafHeaders
- header_getSize
- header_getStart
- header_getResizeHandler
- table_getHeaderGroups
- table_getLeftHeaderGroups
- table_getCenterHeaderGroups
- table_getRightHeaderGroups
- table_getFooterGroups
- table_getLeftFooterGroups
- table_getCenterFooterGroups
- table_getRightFooterGroups
- table_getFlatHeaders
- table_getLeftFlatHeaders
- table_getCenterFlatHeaders
- table_getRightFlatHeaders
- table_getLeafHeaders
- table_getLeftLeafHeaders
- table_getCenterLeafHeaders
- table_getRightLeafHeaders
- AppHeaderContext
- AppHeaderComponent
- AppHeaderPropsWithSelector
- AppHeaderPropsWithoutSelector
Features API Reference
- stockFeatures
- coreFeatures
- coreCellsFeature
- coreColumnsFeature
- coreHeadersFeature
- coreRowModelsFeature
- coreRowsFeature
- coreTablesFeature
- columnFilteringFeature
- columnFacetingFeature
- columnGroupingFeature
- columnOrderingFeature
- columnPinningFeature
- columnResizingFeature
- columnSizingFeature
- columnVisibilityFeature
- globalFilteringFeature
- rowExpandingFeature
- rowPaginationFeature
- rowPinningFeature
- rowSelectionFeature
- rowSortingFeature
- Column_ColumnFiltering
- Column_ColumnFaceting
- Column_ColumnGrouping
- Column_ColumnOrdering
- Column_ColumnPinning
- Column_ColumnResizing
- Column_ColumnSizing
- Column_ColumnVisibility
- Column_GlobalFiltering
- Column_RowSorting
- Table_ColumnFiltering
- Table_ColumnFaceting
- Table_ColumnGrouping
- Table_ColumnOrdering
- Table_ColumnPinning
- Table_ColumnResizing
- Table_ColumnSizing
- Table_ColumnVisibility
- Table_GlobalFiltering
- Table_RowExpanding
- Table_RowPagination
- Table_RowPinning
- Table_RowSelection
- Table_RowSorting
- Row_ColumnFiltering
- Row_ColumnGrouping
- Row_ColumnPinning
- Row_ColumnVisibility
- Row_RowExpanding
- Row_RowPinning
- Row_RowSelection
- Header_ColumnResizing
- Header_ColumnSizing
- TableOptions_ColumnFiltering
- TableOptions_ColumnGrouping
- TableOptions_ColumnOrdering
- TableOptions_ColumnPinning
- TableOptions_ColumnResizing
- TableOptions_ColumnSizing
- TableOptions_ColumnVisibility
- TableOptions_GlobalFiltering
- TableOptions_RowExpanding
- TableOptions_RowPagination
- TableOptions_RowPinning
- TableOptions_RowSelection
- TableOptions_RowSorting
- TableState_ColumnFiltering
- TableState_ColumnGrouping
- TableState_ColumnOrdering
- TableState_ColumnPinning
- TableState_ColumnResizing
- TableState_ColumnSizing
- TableState_ColumnVisibility
- TableState_GlobalFiltering
- TableState_RowExpanding
- TableState_RowPagination
- TableState_RowPinning
- TableState_RowSelection
- TableState_RowSorting
- ColumnDef_ColumnFiltering
- ColumnDef_ColumnGrouping
- ColumnDef_ColumnPinning
- ColumnDef_ColumnResizing
- ColumnDef_ColumnSizing
- ColumnDef_ColumnVisibility
- ColumnDef_GlobalFiltering
- ColumnDef_RowSorting
- ColumnDef_Plugins
- ColumnPinningState
- ColumnSort
- ColumnFilter
- PaginationState
- RowPinningState
- columnResizingState
- ColumnFiltersState
- ColumnOrderState
- ColumnSizingState
- ColumnVisibilityState
- ExpandedState
- GroupingState
- RowSelectionState
- SortingState
- FilterFn
- FilterFns
- FilterMeta
- SortFn
- SortFns
- AggregationFns
- filterFns
- sortFns
- aggregationFns
Legacy API Reference
- Legacy API Overview
- useLegacyTable
- legacyCreateColumnHelper
- getCoreRowModel
- getFilteredRowModel
- getSortedRowModel
- getGroupedRowModel
- getExpandedRowModel
- getPaginationRowModel
- getFacetedRowModel
- getFacetedMinMaxValues
- getFacetedUniqueValues
- LegacyRowModelOptions
- LegacyTable
- LegacyTableOptions
- LegacyReactTable
- LegacyColumnDef
- LegacyColumn
- LegacyRow
- LegacyCell
- LegacyHeader
- LegacyHeaderGroup
Devtools
TanStack Table provides framework-specific devtools adapters that plug into the TanStack Devtools multi-panel UI.
The table devtools let you inspect registered table instances, switch between multiple tables, and inspect features, state, options, rows, and columns in real time.
By default, the framework adapters only include the live devtools in development mode. In production builds they export no-op implementations unless you opt into the /production entrypoints.
Installation#
Install the TanStack Devtools host package and the Table adapter for your framework:
React#
npm install @tanstack/react-devtools @tanstack/react-table-devtoolsnpm install @tanstack/react-devtools @tanstack/react-table-devtoolsPreact#
npm install @tanstack/preact-devtools @tanstack/preact-table-devtoolsnpm install @tanstack/preact-devtools @tanstack/preact-table-devtoolsSolid#
npm install @tanstack/solid-devtools @tanstack/solid-table-devtoolsnpm install @tanstack/solid-devtools @tanstack/solid-table-devtoolsVue#
npm install @tanstack/vue-devtools @tanstack/vue-table-devtoolsnpm install @tanstack/vue-devtools @tanstack/vue-table-devtoolsAngular, Lit, Svelte, and vanilla do not currently ship dedicated table devtools adapters.
Setup Pattern#
The recommended setup has two parts:
- Mount TanStackDevtools at the app root with tableDevtoolsPlugin()
- Call useTanStackTableDevtools(table, name?) immediately after creating each table
If you register multiple tables, the Table panel shows a selector so you can switch between them.
React Setup#
import React from 'react'
import ReactDOM from 'react-dom/client'
import { useTable } from '@tanstack/react-table'
import { TanStackDevtools } from '@tanstack/react-devtools'
import {
tableDevtoolsPlugin,
useTanStackTableDevtools,
} from '@tanstack/react-table-devtools'
function App() {
const table = useTable({
// ...
})
useTanStackTableDevtools(table, 'Users Table')
return <AppContent table={table} />
}
ReactDOM.createRoot(document.getElementById('root')!).render(
<React.StrictMode>
<App />
<TanStackDevtools plugins={[tableDevtoolsPlugin()]} />
</React.StrictMode>,
)import React from 'react'
import ReactDOM from 'react-dom/client'
import { useTable } from '@tanstack/react-table'
import { TanStackDevtools } from '@tanstack/react-devtools'
import {
tableDevtoolsPlugin,
useTanStackTableDevtools,
} from '@tanstack/react-table-devtools'
function App() {
const table = useTable({
// ...
})
useTanStackTableDevtools(table, 'Users Table')
return <AppContent table={table} />
}
ReactDOM.createRoot(document.getElementById('root')!).render(
<React.StrictMode>
<App />
<TanStackDevtools plugins={[tableDevtoolsPlugin()]} />
</React.StrictMode>,
)See the React row-selection example.
Preact Setup#
import { render } from 'preact'
import { useTable } from '@tanstack/preact-table'
import { TanStackDevtools } from '@tanstack/preact-devtools'
import {
tableDevtoolsPlugin,
useTanStackTableDevtools,
} from '@tanstack/preact-table-devtools'
function App() {
const table = useTable({
// ...
})
useTanStackTableDevtools(table, 'Users Table')
return <AppContent table={table} />
}
render(
<>
<App />
<TanStackDevtools plugins={[tableDevtoolsPlugin()]} />
</>,
document.getElementById('root')!,
)import { render } from 'preact'
import { useTable } from '@tanstack/preact-table'
import { TanStackDevtools } from '@tanstack/preact-devtools'
import {
tableDevtoolsPlugin,
useTanStackTableDevtools,
} from '@tanstack/preact-table-devtools'
function App() {
const table = useTable({
// ...
})
useTanStackTableDevtools(table, 'Users Table')
return <AppContent table={table} />
}
render(
<>
<App />
<TanStackDevtools plugins={[tableDevtoolsPlugin()]} />
</>,
document.getElementById('root')!,
)See the Preact sorting example.
Solid Setup#
import { render } from 'solid-js/web'
import { createTable } from '@tanstack/solid-table'
import { TanStackDevtools } from '@tanstack/solid-devtools'
import {
tableDevtoolsPlugin,
useTanStackTableDevtools,
} from '@tanstack/solid-table-devtools'
function App() {
const table = createTable({
// ...
})
useTanStackTableDevtools(table, 'Users Table')
return <AppContent table={table} />
}
render(
() => (
<>
<App />
<TanStackDevtools plugins={[tableDevtoolsPlugin()]} />
</>
),
document.getElementById('root')!,
)import { render } from 'solid-js/web'
import { createTable } from '@tanstack/solid-table'
import { TanStackDevtools } from '@tanstack/solid-devtools'
import {
tableDevtoolsPlugin,
useTanStackTableDevtools,
} from '@tanstack/solid-table-devtools'
function App() {
const table = createTable({
// ...
})
useTanStackTableDevtools(table, 'Users Table')
return <AppContent table={table} />
}
render(
() => (
<>
<App />
<TanStackDevtools plugins={[tableDevtoolsPlugin()]} />
</>
),
document.getElementById('root')!,
)See the Solid row-selection example.
Vue Setup#
// main.ts
import { createApp, defineComponent, h } from 'vue'
import { TanStackDevtools } from '@tanstack/vue-devtools'
import { tableDevtoolsPlugin } from '@tanstack/vue-table-devtools'
import App from './App.vue'
const Root = defineComponent({
setup() {
return () => [
h(App),
h(TanStackDevtools, {
plugins: [tableDevtoolsPlugin()],
}),
]
},
})
createApp(Root).mount('#app')// main.ts
import { createApp, defineComponent, h } from 'vue'
import { TanStackDevtools } from '@tanstack/vue-devtools'
import { tableDevtoolsPlugin } from '@tanstack/vue-table-devtools'
import App from './App.vue'
const Root = defineComponent({
setup() {
return () => [
h(App),
h(TanStackDevtools, {
plugins: [tableDevtoolsPlugin()],
}),
]
},
})
createApp(Root).mount('#app')<script setup lang="ts">
import { useTable } from '@tanstack/vue-table'
import { useTanStackTableDevtools } from '@tanstack/vue-table-devtools'
const table = useTable({
// ...
})
useTanStackTableDevtools(table, 'Users Table')
</script><script setup lang="ts">
import { useTable } from '@tanstack/vue-table'
import { useTanStackTableDevtools } from '@tanstack/vue-table-devtools'
const table = useTable({
// ...
})
useTanStackTableDevtools(table, 'Users Table')
</script>See the Vue row-selection example.
Naming Tables#
The optional second argument lets you label a table in the devtools selector:
useTanStackTableDevtools(table, 'Orders Table')useTanStackTableDevtools(table, 'Orders Table')If you omit the name, the devtools assign fallback names such as Table 1 and Table 2.
Production Builds#
If you need the live devtools in production, import from the /production entrypoint for your framework package:
import { tableDevtoolsPlugin } from '@tanstack/react-table-devtools/production'
import { useTanStackTableDevtools } from '@tanstack/react-table-devtools/production'import { tableDevtoolsPlugin } from '@tanstack/react-table-devtools/production'
import { useTanStackTableDevtools } from '@tanstack/react-table-devtools/production'Equivalent /production entrypoints are available for the Preact, Solid, and Vue adapters as well.
