Agents & OrchestrationSûr100100/100

Getting Started (TanStack) — Ember Table

Create and render Table v9 with the ember adapter. Route reusable createTableHook

ou envoie-le directement à ton agent.

Installer dans ton projet

$ curl -fsSL https://arboristhree.xyz/cli/install-skill.mjs -o /tmp/arboris-install-skill.mjs && node /tmp/arboris-install-skill.mjs getting-started__tanstack-table__packages-ember-table-skills-12b58f4f63fd
TanStack
TanStack/table
Contenu à copier
---
name: getting-started
description:
  Create and render Table v9 with the ember adapter. Route reusable createTableHook
  defaults, and framework setup; use table-state for reactive ownership.
metadata:
  origin: TanStack
  type: framework
  library: '@tanstack/ember-table'
  framework: ember
  library_version: '9.3.1'
requires:
  - '@tanstack/table-core#core'
sources:
  - TanStack/table:docs/framework/ember/quick-start.md
  - TanStack/table:examples/ember/basic-table
  - TanStack/table:packages/ember-table/src/index.ts
  - TanStack/table:packages/ember-table/src/use-table.ts
  - TanStack/table:packages/ember-table/src/FlexRender.gts
  - TanStack/table:docs/framework/ember/guide/composable-tables.md
  - TanStack/table:examples/ember/basic-app-table
  - TanStack/table:packages/ember-table/src/create-table-hook.ts
---

Load `intent load @tanstack/table-core#core` first for the headless model, stable inputs, and column inference.

Ember 5.8 or newer requires Embroider or ember-auto-import v2. Prefer `.gts` or `.gjs` template-tag components with Glint.

## Setup

```gts
import Component from '@glimmer/component'
import { tracked } from '@glimmer/tracking'
import {
  FlexRenderCell,
  createColumnHelper,
  tableFeatures,
  useTable,
  type Cell,
  type Row,
} from '@tanstack/ember-table'

type Person = { id: string; name: string }

const features = tableFeatures({})
const columnHelper = createColumnHelper<typeof features, Person>()
const columns = columnHelper.columns([
  columnHelper.accessor('name', { header: 'Name' }),
])
const initialData: Person[] = [{ id: '1', name: 'Ada' }]
const getRowId = (row: Person) => row.id

const getAllCells = (
  row: Row<typeof features, Person>,
): Array<Cell<typeof features, Person>> => row.getAllCells()

export default class PeopleTable extends Component {
  @tracked data = initialData

  table = useTable(this, () => ({
    features,
    columns,
    data: this.data,
    getRowId,
  }))

  get rows() {
    return this.table.getRowModel().rows
  }

  <template>
    <table>
      <tbody>
        {{#each this.rows as |row|}}
          <tr>
            {{#each (getAllCells row) as |cell|}}
              <td><FlexRenderCell @cell={{cell}} /></td>
            {{/each}}
          </tr>
        {{/each}}
      </tbody>
    </table>
  </template>
}
```

## Construction and rendering

`useTable` takes an options thunk. Read tracked data inside it, and keep features, atoms, and columns stable. In a component, pass `this` as the owner to bind external-atom cleanup to the component lifecycle. The one-argument thunk form remains available for standalone tables.

Read Table APIs in template-consumed getters. Column, row, cell, and header prototype methods require their receiver, so use a getter or module helper such as `getAllCells(row)` rather than an extracted method. Wrap event calls the same way.

Use `FlexRenderCell`, `FlexRenderHeader`, and `FlexRenderFooter` for the matching object. Rendered components receive `@ctx` and optional `@options` through `flexRenderComponent(Component, options)`.

With `tableFeatures({})`, render `row.getAllCells()`. Register `columnVisibilityFeature` before switching to `row.getVisibleCells()`.

## Read for the task

- When adding or configuring optional features, load `intent load @tanstack/table-core#table-features` and read only references for the requested behavior.
- For state ownership or reactive reads, read [table-state](../table-state/SKILL.md).
- When tables share features, defaults, or reusable UI, read [create-table-hook](references/create-table-hook.md).

## API discovery

Inspect `node_modules/@tanstack/ember-table/declarations/index.d.ts`, `use-table.d.ts`, `signal.d.ts`, and `FlexRender.d.ts`. Core feature APIs are in `node_modules/@tanstack/table-core/dist/features/`.
Colle ce Markdown dans ton agent ou utilise les boutons ci-dessus pour l’écrire dans ton projet.

Ce que fait Getting Started (TanStack) — Ember Table

When adding or configuring optional features, load `intent load @tanstack/table-core#table-features` and read only references for the requested behavior.
For state ownership or reactive reads, read [table-state](../table-state/SKILL.md).
When tables share features, defaults, or reusable UI, read [create-table-hook](references/create-table-hook.md).

Comment utiliser Getting Started (TanStack) — Ember Table

1
Copie le prompt
Un clic copie le prompt packagé (ou l'envoie à ton agent).
2
L'agent installe le skill
Il ajoute le SKILL.md et ses ressources à ton projet.
3
Activation automatique
Le skill s'active dès que le contexte correspond.

Déclencheurs pour Getting Started (TanStack) — Ember Table

Dis simplement à ton agent quelque chose comme :

Applique le skill getting-started__tanstack-table__packages-ember-table-skills-12b58f4f63fd à cette tâche
Utilise getting-started__tanstack-table__packages-ember-table-skills-12b58f4f63fd pour améliorer cette implémentation
Passe en revue ce sujet avec getting-started__tanstack-table__packages-ember-table-skills-12b58f4f63fd

Skills liés à Getting Started (TanStack) — Ember Table