This skill builds on @tanstack/table-core#core and @tanstack/table-devtools#devtools.
Setup
<script setup lang="ts">
import { useTable, tableFeatures } from '@tanstack/vue-table'
import { useTanStackTableDevtools } from '@tanstack/vue-table-devtools'
const table = useTable({
key: 'users-table',
features: tableFeatures({}),
columns: [],
data: [],
})
useTanStackTableDevtools(table)
</script>
Users table registered
Mount the Vue TanStackDevtools host once with `tableDevtoolsPlugin({})`, following `docs/devtools.md`.
## Hooks and Components
The hook accepts a table or ref-like table and tracks replacement. Keep that reactive wrapper intact rather than unwrapping once.
## Common Mistakes
### HIGH Ref unwrapped before registration
Wrong: read a ref once and register only that snapshot.
Correct: pass the ref/maybe-ref shape accepted by the hook.
The adapter watches the resolved table and cleans up when it changes.
Source: TanStack/table:packages/vue-table-devtools/src/useTanStackTableDevtools.ts
### HIGH Missing or duplicate key
Wrong: omit `key` or reuse a key across mounted tables.
Correct: use one descriptive stable key for each target.
The registry skips keyless tables and replaces duplicate targets.
Source: TanStack/table:packages/table-devtools/src/tableTarget.ts
### MEDIUM Development gate mistaken for broken plugin
Wrong: expect the default panel/plugin/hook in production.
Correct: keep normal Devtools development-only unless explicitly importing `/production`.
The package index selects no-op exports outside development.
Source: TanStack/table:packages/vue-table-devtools/src/index.ts
## API Discovery
Inspect `node_modules/@tanstack/vue-table-devtools/dist/index.d.ts` and `useTanStackTableDevtools.d.ts` for current ref handling.