본문으로 이동

Tabular

@sectile/tabular는 표 형식 데이터의 query, 선택, cursor, 편집과 계층 상태를 계산하는 렌더러 독립 core입니다. 화면에는 필요한 상호작용 밀도에 따라 DataTable, DataGrid, DataTreeGrid 중 하나를 사용합니다.

sh
pnpm add @sectile/tabular

먼저 profile 선택하기

질문선택
행을 읽고 비교하며 정렬·필터·선택하는가?DataTable
모든 셀을 방향키로 이동하고 편집하는가?DataGrid
grid에 부모·자식 branch도 필요한가?DataTreeGrid

하나의 데이터 계약에서 시작합니다

공통 기능은 그대로 두고, 화면에서 필요한 탐색 단위에 맞춰 상호작용 프로필만 고릅니다.

정체성
row · column · cell · group ID
Schema
columns · nested headers · capabilities
질의
sort · filter · group · aggregate · pivot
소스
request · source · view revision
접근 범위
page · window · visible counts
선택
explicit row · all-matching
열 상태
order · hidden · pinned start/end
소유권과 안전
controlled slices · limits · atomic errors
탐색 단위 선택
선택한 프로필

DataTable

행을 읽고 비교하는 표

이 프로필이 책임지는 기능
  • native table과 form 의미
  • 정렬·필터·행 선택
  • 그룹 행 펼치기
  • 편집 commit 의도
필요할 때 바깥에서 조합loading · empty · error · retry가상화 · 측정 · scroll

DataTable

Native table 의미, 검색·정렬, checkbox 선택과 form 연결이 중심입니다.

읽고 비교하는 표검색·정렬·선택을 직접 사용하고 같은 UI의 구현을 환경별로 확인합니다.
사용자 목록소속, 역할과 계정 상태를 한눈에 확인 · 8명 표시
요약검색 · 정렬 · 선택이 하나의 projection을 공유합니다.
사용자 정보계정 활동
검색 결과가 없습니다
열 제목을 눌러 정렬 · Shift로 행 범위 선택 · 검색 결과 전체 선택 0명 표시 · 0명 선택

DataTable의 모든 기능과 예제 →

DataGrid

2차원 cursor, roving focus, edit/commit/cancel과 cursor 복구를 더합니다.

셀 단위 작업 공간2차원 cursor와 편집 가능한 셀을 실제 grid에서 사용합니다.
출시 준비 보드셀을 이동하며 릴리스 항목을 바로 편집 · 8개 항목
요약{"cursor":null,"selected":{"kind":"explicit-rows","rowIDs":[]}}
Shift로 행 범위 선택 · 방향키 이동 · Enter 편집 · Escape 취소 0개 행 선택

DataGrid의 모든 기능과 예제 →

DataTreeGrid

DataGrid에 expansion, level·position metadata와 부모 context를 더합니다.

계층형 작업 공간부모 context와 leaf 셀을 같은 treegrid에서 탐색합니다.
서비스 소유권도메인과 서비스의 계층을 한 grid에서 관리 · 9개 서비스
요약{"cursor":null,"edit":"navigation","visibleRows":0}
서비스
담당자
등급
리전
상태
그룹 펼침·접기 · Shift로 leaf 범위 선택 · 셀 이동 · leaf 편집 0개 행 표시

DataTreeGrid의 모든 기능과 예제 →

사용할 계층 선택하기

필요한 범위설치import
상태·query·projection 계산@sectile/tabular@sectile/tabular/data-*
기존 HTML에 연결@sectile/dom @sectile/tabular@sectile/dom/tabular
Vue compound component@sectile/vue @sectile/tabular vue@sectile/vue/data-table, @sectile/vue/data-grid, @sectile/vue/data-tree-grid

@sectile/tabular는 DOM, Vue, terminal을 알지 않습니다. @sectile/dom@sectile/vue에서는 optional peer dependency이므로 Tabular subpath를 사용할 때만 함께 설치합니다. Tabular에는 terminal host를 제공하지 않습니다.

각 예제의 코드 탭은 동일한 기능을 Vue·DOM·Core로 보여줍니다. 먼저 원하는 동작을 확인한 뒤 실제 환경의 코드를 선택하세요.

다음으로 읽을 문서

하려는 일문서
ID, query, selection, revision 이해공통 계약
서버 정렬·필터·페이지, loading, retry비동기 source
기존 element와 event 연결DOM 연결
typed component, Provider, slot, SSRVue 연결
큰 view만 선택적으로 windowing가상화

책임 경계

Tabular는 같은 event와 state에 대해 결정적인 다음 state, projection과 command를 만듭니다. 응용 프로그램은 network, cache, 저장, loading·empty·error UI를 소유합니다. DOM/Vue host는 element, focus, form, 측정과 scroll을 소유합니다. 이 경계는 공통 계약비동기 source에서 실제 동작과 함께 설명합니다.

공개 subpath

경로책임
/modelID, immutable model, controlled ownership, limit
/queryfilter, sort, group, aggregate, pivot descriptor
/sourcerequest/response, page/window, client source
/data-table읽기 중심 table controller
/data-grid셀 중심 grid controller
/data-tree-grid계층형 grid controller
/virtual소비자가 설치한 @sectile/virtual과 조합하는 선택적 adapter

MIT 라이선스로 배포합니다.