mcpField
S
syncfusion-javascript-listview

syncfusion-javascript-listview

github.com/syncfusionデザイン・UI058 回インストール1 週間前に更新
リポジトリ

syncfusion-javascript-listview について

データ駆動型UIでSyncfusion ListViewを実装する開発者向けのTypeScriptスキルです。データバインド、選択、階層ナビゲーション、カスタマイズ、仮想スクロールを扱います。

主な機能

  1. 01ローカル・リモートデータのバインド
  2. 02単一・複数・チェックボックス選択
  3. 03ネストリストとドリルダウンナビゲーション
  4. 04グループ化、絞り込み、検索
  5. 05テンプレート、イベント、仮想スクロール

活用シーン

  1. 01検索可能な連絡先リストの構築
  2. 02階層データの段階的な表示
  3. 03仮想スクロールによる大規模リストの描画
  4. 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.md
api-reference.md
data-binding.md
events-state-management.md
getting-started.md
grouping-filtering.md
nested-lists-navigation.md
selection-interactions.md
styling-customization.md
templates-rendering.md
use-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

次のステップ

  1. 「はじめに」から始める - 最初の ListView をセットアップします
  2. データソースを選ぶ - ユースケースに合わせて data-binding.md を使用します
  3. 外観をカスタマイズする - templates-rendering.md のテンプレートを適用します
  4. インタラクティブ機能を追加する - 選択機能とイベントを実装します
  5. 高度な機能を試す - 仮想化、ドラッグ&ドロップ、アニメーションを活用します
  6. API を参照する - 完全なドキュメントは api-reference.md で確認できます

実装の詳しい手順については、上記のリファレンスファイルを参照してください。各ファイルでは特定の項目に焦点を当て、utils/code-snippet/listview フォルダーにある完全なコード例を紹介しています。

コメント