Data Table
정렬, 필터, 페이지 이동, 행 선택이 필요한 데이터 목록에 사용합니다. 단순한 정적 행에는 Table을 사용하세요.
미리보기
워크스페이스 프로젝트 관리
하나의 테이블 상태로 프로젝트 검색·필터, 열 정렬, 페이지를 넘는 행 선택, 페이지 크기 변경을 처리합니다.
미리보기를 불러오는 중입니다.
설치
Registry를 처음 사용한다면 기본 설정과 공통 스타일 설치 을 먼저 완료하세요.
npx shadcn@latest add @neumorphism-ui/data-table공통 base를 한 번 설치한 뒤 CLI로 필요한 컴포넌트와 의존성을 추가합니다.
워크스페이스 프로젝트 관리
npx shadcn@latest add @neumorphism-ui/data-table @neumorphism-ui/checkbox @neumorphism-ui/input @neumorphism-ui/select @neumorphism-ui/button사용법
데이터와 열을 정의하고 필요한 기능을 갖춘 TanStack 테이블을 생성해 DataTable에 전달하세요. 검색, 열 제목, 페이지 이동은 같은 테이블 인스턴스와 연결합니다.
"use client";
import { columnVisibilityFeature, rowSelectionFeature, rowSortingFeature, tableFeatures, useTable } from "@tanstack/react-table";
import { DataTable } from "@/components/ui/data-table";
const features = tableFeatures({ columnVisibilityFeature, rowSelectionFeature, rowSortingFeature });
const data = [{ name: "Atlas", seats: 12 }, { name: "Beacon", seats: 4 }];
const columns = [
{ accessorKey: "name", header: "Project", enableSorting: false },
{ accessorKey: "seats", header: "Seats", enableSorting: false },
];
export default function Example() {
const table = useTable({ features, data, columns });
return <DataTable table={table} caption="Workspace projects" />;
}API 레퍼런스
데이터와 상태는 TanStack Table 인스턴스가 소유하며 UI는 표의 렌더링을 담당합니다. 예제는 고정된 행 ID로 페이지와 필터가 바뀌어도 선택을 유지합니다. 데이터는 예시입니다.
| 컴포넌트 | 속성 | 타입 | 기본값 | 설명 |
|---|---|---|---|---|
DataTable | table | ReactTable<TFeatures, TData> | — | 행 모델과 상태를 가진 TanStack Table 인스턴스입니다. |
DataTable | caption / emptyMessage / children | string / ReactNode | — | 표 제목, 빈 결과 문구, 검색·필터 도구를 전달합니다. |
DataTablePagination | labels / pageSizes | PaginationLabels / number[] | — | 이전·다음 버튼, 페이지 문구와 페이지 크기를 지정합니다. |
접근성
- 01
표 제목과 열의 aria-sort, 키보드로 접근할 수 있는 스크롤 영역을 제공합니다.
- 02
현재 페이지 선택과 전체 선택 개수를 구분하세요. 서버 페이지 방식에서는 선택 상태를 별도로 관리해야 합니다.