syncfusion-javascript-listview について
データ駆動型UIでSyncfusion ListViewを実装する開発者向けのTypeScriptスキルです。データバインド、選択、階層ナビゲーション、カスタマイズ、仮想スクロールを扱います。
主な機能
- 01ローカル・リモートデータのバインド
- 02単一・複数・チェックボックス選択
- 03ネストリストとドリルダウンナビゲーション
- 04グループ化、絞り込み、検索
- 05テンプレート、イベント、仮想スクロール
活用シーン
- 01検索可能な連絡先リストの構築
- 02階層データの段階的な表示
- 03仮想スクロールによる大規模リストの描画
- 04チャットやタスクリスト画面の作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ javascript-ui-controls-skills --skill syncfusion-javascript-listviewインストール後、Claude Code で/syncfusion-javascript-listviewを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/advanced-features.mdapi-reference.mddata-binding.mdevents-state-management.mdgetting-started.mdgrouping-filtering.mdnested-lists-navigation.mdselection-interactions.mdstyling-customization.mdtemplates-rendering.mduse-case-examples.md詳細
Syncfusion TypeScript ListView の実装
このスキルを使用するタイミング
次のような場合に、このスキルを使用します。
- 動的なデータ(ローカル、リモート、または API ベース)を含むリストを作成する
- 階層構造や入れ子になったリスト構造を表示する
- 複数選択またはチェックボックスによる選択を実装する
- グループ化、フィルタリング、検索機能を追加する
- インタラクティブな UI コンポーネント(チャットウィンドウ、連絡先リスト、データテーブル)を構築する
- リスト項目にカスタムテンプレートやスタイルを適用する
- 仮想スクロール、ドラッグ&ドロップ、アニメーション、ページングなどの高度な機能を有効にする
- リストのイベント(選択、スクロール、操作)を処理する
コンポーネントの概要
Syncfusion ListView コンポーネントは、データの表示に適した、機能豊富で高性能なリストコンポーネントです。次の機能をサポートしています。
- データバインディング:ローカル配列、リモート API、動的データ
- 選択:単一選択、複数選択、チェックボックスによる選択
- テンプレート:カスタム項目、ヘッダー、グループのテンプレート
- 入れ子構造:階層構造とドリルダウンナビゲーション
- 整理:検索可能なデータセットのグループ化とフィルタリング
- パフォーマンス:仮想スクロール、大規模データセットの効率的なレンダリング
- インタラクティブ機能:ドラッグ&ドロップ、アニメーション、イベント、カスタムスタイル
- アクセシビリティ:WCAG 準拠、キーボードナビゲーション、ARIA サポート
ドキュメントとナビゲーションガイド
はじめに
📄 参照: references/getting-started.md
- インストールとパッケージのセットアップ
- ListView の基本的な実装
- CSS のインポートとテーマの設定
- 初回のレンダリングと最小限の実用例
- TypeScript プロジェクトのセットアップ
データバインディングとデータソース
📄 参照: references/data-binding.md
- ローカル配列のデータソース
- DataManager を使用したリモート API のデータバインディング
- 動的なデータの読み込みと更新
- クエリビルダーと OData のサポート
- 実際のデータバインディングパターン
テンプレートとレンダリング
📄 参照: references/templates-rendering.md
- 項目テンプレート(1 行、複数行、カスタム HTML)
- カスタムヘッダー用のヘッダーテンプレート
- スタイルを適用したグループテンプレート
- 動的なテンプレートの切り替え
- テンプレートのベストプラクティスとパターン
選択とインタラクション
📄 参照: references/selection-interactions.md
- 単一項目の選択
- チェックボックスまたは Ctrl キーを押しながらのクリックによる複数選択
- チェックボックスの設定と配置
- 項目の有効化と無効化
- 項目の表示切り替え
- 選択イベントとコールバック
入れ子になったリストとナビゲーション
📄 参照: references/nested-lists-navigation.md
- 階層データ構造
- 入れ子になったリストのナビゲーションとドリルダウン
- 階層間の戻るナビゲーション
- パンくずリストのパターン
- 動的な階層構造
グループ化とフィルタリング
📄 参照: references/grouping-filtering.md
- カテゴリまたはフィールドごとの項目のグループ化
- カスタムグループヘッダーテンプレート
- グループヘッダーでの項目数の表示
- 検索とフィルタリングの実装
- リアルタイムフィルタリングのパターン
スタイルとカスタマイズ
📄 参照: references/styling-customization.md
- CSS クラスのカスタマイズ
- テーマの適用(Material、Fabric、Bootstrap)
- 右から左(RTL)の言語サポート
- カスタムスタイルと CSS 変数
- レスポンシブデザインのパターン
イベントと状態管理
📄 参照: references/events-state-management.md
- 利用可能なイベント(選択、スクロール、アクションの開始/完了)
- イベント処理とコールバック
- イベント引数とデータ
- 状態の追跡と管理
- 一般的なイベントパターン
高度な機能
📄 参照: references/advanced-features.md
- 大規模データセット向けの仮想スクロール
- ページングとページネーションの統合
- ドラッグ&ドロップ機能
- アニメーション効果とトランジション
- 状態の永続化と復元
- パフォーマンス最適化のヒント
実際の例とユースケース
📄 参照: references/use-case-examples.md
- チャットウィンドウの UI 実装
- 連絡先リストのレイアウト
- ToDo/タスクリストアプリケーション
- デュアルリストマネージャー
- モバイル向け連絡先レイアウト
- ListView を使ったグリッド状のレイアウト
API リファレンスの全項目
📄 参照: references/api-reference.md
- すべての ListView プロパティと型、デフォルト値
- パラメーターを含むメソッドの完全なドキュメント
- 引数の構造を含むイベントの定義
- 型定義と列挙型
- 設定インターフェイス
- 主要な API 項目ごとの使用例
クイックスタートの例
import { ListView, ListViewComponent } from '@syncfusion/ej2-lists';
import { DataBind } from '@syncfusion/ej2-base';
// Basic ListView with local data
const listViewInstance = new ListView({
dataSource: [
{ id: '1', text: 'Item 1' },
{ id: '2', text: 'Item 2' },
{ id: '3', text: 'Item 3' }
],
fields: { id: 'id', text: 'text' }
});
listViewInstance.appendTo('#element');
よく使われるパターン
パターン 1:選択機能付きの基本リスト
const listView = new ListView({
dataSource: ['Apple', 'Banana', 'Cherry'],
select: (args) => {
console.log('Selected:', args.data);
}
});
listView.appendTo('#list');
パターン 2:チェックボックスを使った複数選択
const listView = new ListView({
dataSource: data,
showCheckBox: true,
fields: { text: 'Name', id: 'Id', isChecked: 'Checked' }
});
listView.appendTo('#list');
パターン 3:ネストされたリストのナビゲーション
const listView = new ListView({
dataSource: hierarchicalData,
fields: { text: 'text', id: 'id', child: 'child' },
select: (args) => {
if (args.data.child) {
// Navigate to child list
}
}
});
listView.appendTo('#list');
パターン 4:グループ化されたリスト
const listView = new ListView({
dataSource: data,
fields: { text: 'Name', groupBy: 'Category', id: 'Id' }
});
listView.appendTo('#list');
主な機能の概要
| 機能 | 説明 | リファレンス |
|---|---|---|
| データバインディング | ローカル/リモートのデータソースに接続 | data-binding.md |
| テンプレート | 項目、ヘッダー、グループの外観をカスタマイズ | templates-rendering.md |
| 選択 | 単一選択、複数選択、またはチェックボックスモード | selection-interactions.md |
| ネスト | 階層をたどるナビゲーション | nested-lists-navigation.md |
| グループ化 | カテゴリー別に項目を整理 | grouping-filtering.md |
| フィルタリング | 項目を動的に検索・フィルタリング | grouping-filtering.md |
| スタイル設定 | テーマとカスタマイズのオプション | styling-customization.md |
| イベント | ユーザー操作を処理 | events-state-management.md |
| 仮想化 | 大規模なデータセットを効率的に描画 | advanced-features.md |
| ドラッグ&ドロップ | マウスで項目の順序を変更 | advanced-features.md |
パフォーマンスのヒント
- 1000 件以上の項目を含むリストでは、仮想化を有効にする
- 大規模なデータセットには、遅延読み込みを使ったリモートデータを使用する
- 過剰な再描画を避けるため、フィルターにデバウンスを適用する
- DOM の複雑さを最小限に抑えて、テンプレートを最適化する
- グループ分けが静的な場合は、グループヘッダーをキャッシュする
ブラウザーのサポート
- Chrome(最新)
- Firefox(最新)
- Safari(最新)
- Edge(最新)
- IE 11+
依存関係
@syncfusion/ej2-lists
@syncfusion/ej2-base
@syncfusion/ej2-data
次のステップ
- 「はじめに」から始める - 最初の ListView をセットアップします
- データソースを選ぶ - ユースケースに合わせて data-binding.md を使用します
- 外観をカスタマイズする - templates-rendering.md のテンプレートを適用します
- インタラクティブ機能を追加する - 選択機能とイベントを実装します
- 高度な機能を試す - 仮想化、ドラッグ&ドロップ、アニメーションを活用します
- API を参照する - 完全なドキュメントは api-reference.md で確認できます
実装の詳しい手順については、上記のリファレンスファイルを参照してください。各ファイルでは特定の項目に焦点を当て、utils/code-snippet/listview フォルダーにある完全なコード例を紹介しています。