SuperAPI AI Directory

nuxt-tables

Data & analytics

View repository

Updated 10-15 23:58

About this skill

Nuxt Tables

Data tables with column builder pattern and XTable component.

Core Concepts

tables.md - Column builder, XTable, row actions

Column Builder Pattern

// app/tables/posts.ts
import { h } from 'vue'
import type { TableColumn } from '@tanstack/vue-table'

const statusColumn: TableColumn = { id: 'status', accessorKey: 'status', header: 'Status', cell: ({ row }) => h(UBadge, { color: row.getValue('status').color() }, () => row.getValue('status').text), }

export const postsColumnBuilder = createColumnBuilder({ ulid: ulidColumn, author: authorColumn, status: statusColumn, dates: datesColumn, })

// Usage const columns = postsColumnBuilder.all() const columns = postsColumnBuilder.build(['ulid', 'status']) const columns = postsColumnBuilder.except(['dates'])


## XTable Usage

```vue
<XTable
  :data="posts"
  :columns="columns"
  :loading="isLoading"
  :fetching="isFetching"
  :row-actions="rowActions"
  row-id="ulid"
  @row-click="handleRowClick"
/>

Row Actions

const rowActions = computed(() => (row: Row<Post>) => [
  { label: 'View', to: `/posts/${row.original.ulid}` },
  { label: 'Edit', onSelect: () => openEdit(row.original) },
  { label: 'Delete', onSelect: () => handleDelete(row.original) },
])