Grid.jsの導入方法
CLI経由の場合は次の通りです。
[CLI経由の場合]
npm install gridjs --save
お手軽にまず試して見たい場合や、ビルドを介さない静的ページ等でも使えるように、
CDNも用意してくれています。CDNを使う場合、組み込みたいhtmlのヘッダ内に、次の2つを読み込みます。
[CDN経由の場合]
<link href="https://cdn.jsdelivr.net/npm/gridjs/dist/theme/mermaid.min.css" rel="stylesheet" /> <script src="https://cdn.jsdelivr.net/npm/gridjs/dist/gridjs.umd.js"></script>
CLIかCDNいずれかの方法で、Grid.js本体(とcss)の読み込みが済んだら、
表示したいhtml内に次を記述。
[html]
<div id="gridContainer"></div>
↑この要素とJS側で紐付けることにより、要素内にテーブルが描画されます。(もちろん、id名は何でも良いです)
上記のidを持った要素と紐づくテーブルは、次のように定義します。
[JavaScript]
new gridjs.Grid({ columns: ['名前', 'ジャンル', '素晴らしさ'], data: [ ['Vue', 'Frontend Framework', '★★★★★'], ['Vuetify', 'UI Framework', '★★★★★'], ['React', 'Frontend Framework', '★★★★★'], ['Gatsby', 'Static Site Genarator', '★★★★★'], ['Grid', 'Great Table Library', '★★★★★'] ], }).render(document.getElementById('gridContainer'));
↑JavaScript側でこのようにdataを定義、
末尾の render(document.getElementById(‘gridContainer’)); の部分で
先ほどのidを持った要素と紐付けます。
すると、次のようにデータテーブルが生成されます!
ソート機能をつける
データの値による並べ替えを有効にするには、次のように書き換えます。
[JavaScript]
new gridjs.Grid({ columns: ['名前', 'ジャンル', '素晴らしさ'], data: [ ['Vue', 'Frontend Framework', '★★★★★'], ['Vuetify', 'UI Framework', '★★★★★'], ['React', 'Frontend Framework', '★★★★★'], ['Gatsby', 'Static Site Genarator', '★★★★★'], ['Grid', 'Great Table Library', '★★★★★'] ], sort: true }).render(document.getElementById('gridContainer'));
↑なんと、先ほどの基本形に、sort オプションを true にする1行を追加してあげるだけです。
これで、値による昇順・降順の並べ替えが可能になります。
デフォルトでは、アルファベット順による比較ができます。
また、自身でルールを定義するカスタムソートについても、公式ページに記載があります。
ページネーションをつける
Grid.js、すごいです。ソートだけでもありがたいのですが、
その上ページネーションも簡単につけることができます。具体的には、次のように書きます。
[JavaScript]
new gridjs.Grid({ columns: ['名前', 'ジャンル', '素晴らしさ'], data: [ ['Vue', 'Frontend Framework', '★★★★★'], ['Vuetify', 'UI Framework', '★★★★★'], ['React', 'Frontend Framework', '★★★★★'], ['Gatsby', 'Static Site Genarator', '★★★★★'], ['Grid', 'Great Table Library', '★★★★★'] ], sort: true, pagination: { enabled: true, limit: 3, summary: false } }).render(document.getElementById('gridContainer'));
↑なんと、pagination オプションにパラメーターを渡すだけです。
これで、3件ずつ値を表示する、ページネーション付きのデータテーブルが表示できます。
本当に手軽で使いやすく、感動すら覚えました…。
Grid.js、すばらしいです。感謝。
【Premium特典】コード全体像
ここまで、
高機能なデータテーブルを表示することができるライブラリの表示方法について
書いてきましたが、更に理解を深めるには、実際に動いているファイルをご自身の環境で見てみる事が
近道かと思います。こちらのセクションでは、当記事でご紹介したhtmlファイルがダウンロードできます。
tedate Premiumとは?
「tedate Premium」 とは、tedate.jp 閲覧時に掲示される広告を非表示にする事ができたり、会員限定記事が閲覧可能になる、
月額制の会員機能です。
ログイン頂くと、この記事のサンプルデータがダウンロードできます。
ダウンロードするには、tedate Premiumにご登録ください。
登録済みの方のログインページはこちら。
tedate Premiumのご説明・新規ご登録は次のリンクよりお進みください。
tedate Premium のご紹介
ダウンロードデータ更新日:2023年1月24日 ※随時アップデート予定です!
この記事のまとめ
今回は、とてもお手軽にかつ、
とても高機能なデータテーブルを表示することができるライブラリ、
Grid.js についての内容を書きました。
今回は単純なサンプルのみでしたが、
公式サイトを見る限り、他にも便利な機能がたくさんあるようですので
今後も試してみたいと思っています。
また Grid.js 公式サイトの次のページ
What is Grid.js? | Grid.js
に記載があるように、これだけ高機能なライブラリながら
容量は12kbと軽量なのも魅力です。
心からの感謝の気持ちを捧げつつ、また今後も Grid.js に関する内容を更新できたらと思っています。
当サイトでは、今後もWeb制作、Webデザインに関する様々な記事を書いていく予定です。
※この記事は内容の品質向上を目的に、随時更新を行う場合があります。