본문으로 건너뛰기

Table

Table은 사용자가 패턴이나 인사이트를 도출하기 쉽도록 정보들을 읽기 쉽게 정렬하여 보여줍니다. 구조화된 정보들의 모음을 보여주어야 할 때, 정보를 필터하고 정렬해서 제공할 때 사용합니다

Loading...

How to use

import { useTable } from '@vibrant-ui/components';

const Component = () => {
const { Table } = useTable<Data, RowKey>();

return (
<Table>
<Table.Column />
<Table.Column />
</Table>
);
};

Properties

Table

PropTypeDefaultDescription
dataobject[]Table이 보여줄 데이터를 지정합니다.
rowKeystring행의 식별자가 될 수 있는 키를 지정합니다.
selectableboolean행의 선택가능 여부를 결정합니다.
selectButtons{text: string; onClick: (selectedRows) => void }[]1개 이상의 행이 선택되었을 때 보여줄 액션의 텍스트와 동작을 지정합니다.
onSelectionChange(selectedRowKeys) => void행이 선택됐을 때 선택된 행을 대상으로 실행할 동작을 지정합니다.
renderExpanded(row: Data) => ReactElementChild행이 확장됐을 때 보여줄 요소를 지정합니다.
disabledRowKeysstring[]비활성화할 행의 키를 지정합니다.
expandedRowKeysstring[]확장되어 있을 행의 키를 지정합니다.
onRow{ onClick: (row: Data) => void }특정 행에 대한 동작을 지정합니다. 이 때 Table.Column 중 한 개라도 onDataCell이 지정되어 있다면 해당 기능은 동작하지 않습니다.
onSort({ dataKey, direction }) => void정렬 순서가 변경될 때 실행할 동작을 지정합니다.
emptyTextstring데이터의 개수가 없을 때 표시되는 텍스트를 지정합니다.
emptyImagestring데이터의 개수가 없을 때 표시되는 이미지의 소스를 지정합니다.
tableLayoutauto | fixedTable 레이아웃 설정을 지정합니다.
loadingauto | fixed로딩 상태를 지정합니다.

Table.Column

PropTypeDefaultDescription
keystring열의 식별자.
dataKeystring데이터 셀에 표시할 data의 키를 정보를 지정합니다. dataKey가 지정되지 않았을 경우 renderDataCell이 필수로 지정되어야 합니다.
widthnumber | string열의 너비를 지정합니다.
selectableboolean데이터 셀의 선택가능 여부를 결정합니다.
renderDataCellstring데이터 셀에 렌더할 요소를 지정합니다. renderCell이 지정되지 않았을 경우 dataKey가 필수로 지정되어야 합니다.
formatData(row: Data) => TextChildren데이터 셀에 표시되는 데이터를 변환합니다.
onDataCell{ onCopy: (row: Data) => void, onClick: (row: Data) => void }특정 데이터 셀에 대한 동작을 지정합니다.
renderHeader() => ReactElementChild열의 헤더에 렌더할 요소를 지정합니다. title과 동시에 사용될 수 없습니다.
titlestring열의 헤더에 표시되는 제목을 지정합니다.
descriptionstring열의 헤더에 헬퍼 아이콘이 노출되며 툴팁의 내용을 지정합니다.
sortablebooleanfalse열의 정렬 가능 여부를 지정합니다.
sortDirectionnone | desc | asc'none'열의 초기 정렬 방향을 지정합니다.
alignVertical{ header: 'start' \| 'center' \| 'end', dataCell: 'start' \| 'center' \| 'end' }{ header: 'center', dataCell: 'center' }헤더와 데이터 셀의 콘텐츠의 세로 축 정렬을 지정합니다.
alignHorizontal{ header: 'start' \| 'center' \| 'end', dataCell: 'start' \| 'center' \| 'end' }{ header: 'center', dataCell: 'center' }헤더와 데이터 셀의 콘텐츠의 가로 축 정렬을 지정합니다.
lineLimit{ header: number, dataCell: number }헤더와 데이터 셀의 lineLimit을 지정합니다.
wordBreak{ header: TextSystemProps['wordBreak'], dataCell: TextSystemProps['wordBreak'] }헤더와 데이터 셀의 wordBreak을 지정합니다.
whiteSpace{ header: TextSystemProps['whiteSpace'], dataCell: TextSystemProps['whiteSpace'] }헤더와 데이터 셀의 whiteSpace을 지정합니다.
overflowWrap{ header: TextSystemProps['overflowWrap'], dataCell: TextSystemProps['overflowWrap'] }헤더와 데이터 셀의 overflowWrap을 지정합니다.

Usage

행 선택 vs 셀 선택

selectable = true일 경우 체크박스 전용 칼럼이 좌측에 생성됩니다. 데이터 셀의 체크박스를 클릭 시 해당 행이 선택되며 헤더의 체크 박스는 불확정(indeterminate) 상태로 변환됩니다. 헤더의 체크박스 클릭 시 모든 행이 선택된 상태로 전환됩니다. 행이 선택됐을 때 테이블 헤더에서 실행할 수 있는 버튼을 selectButtons 속성을 통해 지정할 수 있습니다. 선택된 행이 바뀔 때 onSelecitonChange 콜백 함수가 실행됩니다.

Loading...
Loading...

행 비활성화

disabledRowKeys 속성을 통해서 비활성화할 행을 선택할 수 있습니다. 체크 박스와 확장 아이콘 버튼이 비활성화되고 텍스트의 색상도 disable로 바뀝니다. renderDataCell로 렌더된 요소는 따로 비활성화시켜주어야 합니다.

확장 가능 행

사용자가 행을 확장했을 때 보여줄 요소를 renderExpanded 속성을 통해 지정합니다. expandedRowKeys 속성을 통해 초기에 확정된 채로 보여줄 행을 선택합니다.

Loading...

데이터 정렬

Table.Columnsortable 속성을 통해서 정렬이 필요한 열을 지정할 수 있습니다. 사용자는 정렬이 지정된 열의 헤더를 클릭하여 정렬 방향을 바꿀 수 있습니다. 정렬 순서가 바뀔 때 TableonSort 콜백 함수가 실행됩니다.

Loading...

VirtualizedTable

대량의 리스트를 테이블에서 제공해야 할 때, 적합한 컴포넌트입니다. 사용법은 Table 과 동일하며, height props 만 추가되었습니다. 기존 Table 을 VirtualizedTable 로만 대치해주면 됩니다.

Loading...

Properties

VitualizedTable

PropTypeDefaultDescription
dataobject[]Table이 보여줄 데이터를 지정합니다.
rowKeystring행의 식별자가 될 수 있는 키를 지정합니다.
heightnumber500VirtualizedTable 의 높이를 지정합니다.
selectableboolean행의 선택가능 여부를 결정합니다.
selectButtons{text: string; onClick: (selectedRows) => void }[]1개 이상의 행이 선택되었을 때 보여줄 액션의 텍스트와 동작을 지정합니다.
onSelectionChange(selectedRowKeys) => void행이 선택됐을 때 선택된 행을 대상으로 실행할 동작을 지정합니다.
renderExpanded(row: Data) => ReactElementChild행이 확장됐을 때 보여줄 요소를 지정합니다.
disabledRowKeysstring[]비활성화할 행의 키를 지정합니다.
expandedRowKeysstring[]확장되어 있을 행의 키를 지정합니다.
onRow{ onClick: (row: Data) => void }특정 행에 대한 동작을 지정합니다. 이 때 Table.Column 중 한 개라도 onDataCell이 지정되어 있다면 해당 기능은 동작하지 않습니다.
onSort({ dataKey, direction }) => void정렬 순서가 변경될 때 실행할 동작을 지정합니다.
emptyTextstring데이터의 개수가 없을 때 표시되는 텍스트를 지정합니다.
emptyImagestring데이터의 개수가 없을 때 표시되는 이미지의 소스를 지정합니다.
tableLayoutauto | fixedTable 레이아웃 설정을 지정합니다.
loadingauto | fixed로딩 상태를 지정합니다.
이전
TableHeader