자바스크립트 기반의 오픈 소스 그리드.
서버사이드 렌더링, 엑셀 추출, Master-Detail 구조, Tree, Pivot 등을 지원하며 무료버전과 유료버전으로 나뉘어 있지만 무료 버전만으로도 많은 기능을 제공하고 있다.
JS 스크립트 기반으로 어떤 플랫폼에서도 사용할 수 있다.
복잡한 그리드를 Ag-grid를 통해 손쉽게 그릴 수 있으며 수많은 데이터를 한눈에 보기 쉽게 정리할 수 있다는 장점이 있다.
npm install ag-grid-community ag-grid-react --save
import React from 'react';
import { render } from 'react-dom';
import {AgGridColumn, AgGridReact} from 'ag-grid-react';
import 'ag-grid-community/dist/styles/ag-grid.css';
import 'ag-grid-community/dist/styles/ag-theme-alpine.css';
const App = () => {
const rowData = [
{make: "Toyota", model: "Celica", price: 35000},
{make: "Ford", model: "Mondeo", price: 32000},
{make: "Porsche", model: "Boxter", price: 72000}
];
return (
<div className="ag-theme-alpine" style={{height: 400, width: 600}}>
<AgGridReact
rowData={rowData}>
<AgGridColumn field="make"></AgGridColumn>
<AgGridColumn field="model"></AgGridColumn>
<AgGridColumn field="price"></AgGridColumn>
</AgGridReact>
</div>
);
};
render(<App />, document.getElementById('root'));
AgGridReact와 필요한 CSS를 import한다.
그리드의 두 가지 필수 구성 속성인 열 정의(columnDefs)와 데이터(rowData)는 필수로 들어가야 한다.
ColumnDefs에 저장된 여러개의 컬럼들을 공통의 기본값으로 정의하기 위해서는 defaultColDef 속성을 사용해야 한다.
defaultColDef에 정의 된 속성들을 살펴보면
treeData는 부모와 자식 관계로 이루어진 상위/하위 데이터로 상위 폴더 한 개에 여러 개의 자식을 넣을 수 있다.
비슷한 성격을 가진 rowGroup은 행을 그룹화를 하여 여러 개의 열을 표현할 수 있다.