1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Reactを基本からまとめてみた【ag-Grid】

Last updated at Posted at 2023-03-03

ag-Gridとは?

業務システムなどに向いているリッチなグリッドライブラリのこと。
一部機能は課金対象ですが、チェックボックスによる絞り込み、ソート、カラムの入れ替えなどの基本的な実装は無課金で出来る。

公式:ag-grid

環境の準備

①ターミナルでreactアプリケーションを作成する。

npx create-react-app <プロジェクト名>
cd <プロジェクト名>
npm start

② 必要なパッケージをインストールする。

npm i ag-grid-community ag-grid-react

package.jsonのバージョンが同じであることを確認する。

package.json
"ag-grid-community": "^29.1.0",
"ag-grid-react": "^29.1.0",
App.js
import './App.css';

import { AgGridReact } from 'ag-grid-react';
import React, {
  useState,
  useEffect,
  useMemo,
  useCallback,
  useRef,
} from 'react';

import 'ag-grid-community/styles/ag-grid.css';
import 'ag-grid-community/styles/ag-theme-alpine.css';

function App() {
  const gridRef = useRef();
  //データ用の配列と列定義の配列を作成する
  const [rowData, setRowData] = useState([
    { make: 'Ford', model: 'Focus', price: 40000 },
    { make: 'Toyota', model: 'Celica', price: 45000 },
    { make: 'BMW', model: '4 series', price: 50000 },
  ]);
  // 列情報を定義する
  const [columnDefs, setColumnDefs] = useState([
    { field: 'make' },
    { field: 'model' },
    { field: 'price' },
  ]);

  const defaultColDef = useMemo(
    () => ({
      sortable: true,
      filter: true,
    }),
    []
  );

  const cellClickedListener = useCallback((e) => {
    console.log('cellClicked', e);
  });

  useEffect(() => {
    fetch(
      'https://www.ag-grid.com/example-assets/row-data.js'
        .then((result) => result.json())
        .then((rowData) => setRowData(rowData))
    );
  }, []);

  const pushMeClicked = useCallback((e) => {
    gridRef.current.api.deselectAll();
  });

  return (
    // divタグでcssのクラスとテーマを設定する
    <div className='ag-theme-alpine' style={{ height: 500 }}>
      <button onClick={pushMeClicked}>Push Me</button>
      {/* Grid行にデータと列定義のプロパティに設定する */}
      <AgGridReact
        ref={gridRef}
        onCellClicked={cellClickedListener}
        rowData={rowData}
        columnDefs={columnDefs}
        rowSelection='multiple'
        animateRows={true}
        defaultColDef={defaultColDef}
      />
    </div>
  );
}

export default App;

参考サイト

Quickstart Tutorial for the React Data Grid from AG Grid
ag-gridの使い方

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?