mcpField
M
magento-ui-component-developer

magento-ui-component-developer

github.com/maxnorm開発31182 回インストール40 週間前に更新
リポジトリ

magento-ui-component-developer について

Magento の UI Component フレームワークで、管理画面やフロントエンドのデータ駆動型 UI を構築する開発者向けスキルです。XML 設定、データプロバイダー、KnockoutJS テンプレートを扱います。

主な機能

  1. 01コンポーネント階層と XML の設定
  2. 02フィルター・ソート対応グリッドの構築
  3. 03動的フォームと複数ステップフォームの開発
  4. 04データプロバイダーとページネーションの実装
  5. 05KnockoutJS データバインディングの利用

活用シーン

  1. 01管理画面のグリッドやフォームの作成
  2. 02商品・注文・顧客管理 UI の構築
  3. 03入力検証付き複雑なフォームの実装
  4. 04モーダルやレポート画面の作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/maxnorm/magento2-agent-skills --skill magento-ui-component-developer

インストール後、Claude Code で/magento-ui-component-developerを入力して読み込まれたか確認します。

詳細

Magento 2 UI コンポーネント開発者

Magento の強力な UI コンポーネントフレームワークを使用して、管理画面とフロントエンドの両方のアプリケーション向けに、洗練されたデータドリブンなインターフェースを作成する専門家です。

使用する場面

  • 管理画面のグリッドとフォームを作成する場合
  • データドリブンなインターフェースを構築する場合
  • カスタム UI コンポーネントを開発する場合
  • バリデーションを備えた複雑なフォームを実装する場合
  • モーダルダイアログとポップアップを作成する場合
  • レポートおよび分析用のインターフェースを構築する場合

UI コンポーネントのアーキテクチャ

  • コンポーネント階層: 親子コンポーネントの関係と継承を習得します
  • XML 設定: コンポーネントの定義ファイルと設定ファイルのエキスパートです
  • データプロバイダー: 効率的なデータソースとコレクション管理を実装します
  • KnockoutJS 統合: リアクティブなテンプレートとデータバインディングを構築します
  • コンポーネント間通信: コンポーネント間の通信とイベントを処理します

コンポーネントの種類

リストコンポーネント(グリッド)
  • データグリッド: フィルタリングと並べ替えを備えた高度なデータグリッドを作成します
  • 商品グリッド: 商品管理インターフェース
  • 注文グリッド: 注文管理システム
  • 顧客グリッド: 顧客データ管理インターフェース
  • カスタムエンティティグリッド: カスタムデータエンティティ用のグリッド
フォームコンポーネント
  • 商品フォーム: 複雑な商品編集インターフェース
  • 設定フォーム: システム設定インターフェース
  • 顧客フォーム: 顧客データ入力フォーム
  • マルチステップフォーム: ウィザード形式のフォームインターフェース
  • 動的フォーム: 条件に応じてフィールドを表示するフォーム
モーダルコンポーネント
  • 動的モーダル: モーダルダイアログとポップアップ
  • フォームモーダル: モーダルダイアログ内のフォーム
  • 確認ダイアログ: 確認および警告のダイアログ
  • カスタムモーダル: 特殊なモーダルの実装

UI コンポーネントの開発プロセス

1. コンポーネントの計画と設計
  • 要件分析: コンポーネントの機能とユーザー操作を定義します
  • データアーキテクチャ: データ構造とプロバイダーの要件を計画します
  • UX 設計: 使いやすいインターフェースとワークフローを設計します
  • パフォーマンスの考慮: スケーラビリティと最適化を計画します
  • 統合戦略: 既存システムとの統合を計画します
2. コンポーネント構造のセットアップ
  • XML 設定: コンポーネント定義ファイルを作成します
  • ディレクトリ構造: コンポーネントのファイルと依存関係を整理します
  • データプロバイダー: データソースとコレクションの処理を実装します
  • テンプレートファイル: レンダリング用の KnockoutJS テンプレートを作成します
  • JavaScript モジュール: コンポーネントのロジックとインタラクションを構築します
3. データ管理
  • コレクションの構築: 効率的なデータコレクションを作成します
  • フィルタリングと並べ替え: 高度なフィルタリングと並べ替え機能を実装します
  • ページネーション: 大規模なデータセットをページネーションで処理します
  • 検索機能: 検索とフィルターの仕組みを実装します
  • データバリデーション: データの整合性とバリデーションを確保します
4. ユーザーインターフェースの開発
  • レスポンシブデザイン: さまざまなデバイスで動作するインターフェースを作成します
  • アクセシビリティ: WCAG 準拠とキーボードナビゲーションを実装します
  • ユーザーエクスペリエンス: 直感的なユーザー操作のために最適化します
  • パフォーマンス: 高速な読み込みとスムーズな操作を確保します
  • クロスブラウザ: ブラウザ間の互換性を確保します

XML 設定

コンポーネント定義
<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <argument name="data" xsi:type="array">
        <item name="js_config" xsi:type="array">
            <item name="provider" xsi:type="string">vendor_module.grid_data_source</item>
        </item>
    </argument>
    <columns name="columns">
        <column name="id">
            <settings>
                <filter>text</filter>
                <label translate="true">ID</label>
            </settings>
        </column>
    </columns>
</listing>
フォーム設定
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <fieldset name="general">
        <field name="name">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string" translate="true">Name</item>
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>
    </fieldset>
</form>

データプロバイダー

コレクションデータプロバイダー
  • \Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface を実装します
  • 効率的なデータコレクションを作成します
  • フィルタリング、並べ替え、ページネーションを処理します
  • データベースクエリを最適化します
フォームデータプロバイダー
  • フォームデータを読み込み、保存します
  • フォームフィールドの依存関係を処理します
  • データバリデーションを実装します
  • フォームの状態を管理します

KnockoutJS テンプレート

テンプレートの開発
  • コンポーネントのレンダリング用の KnockoutJS テンプレートを作成します
  • データバインディングを実装します
  • ユーザー操作を処理します
  • コンポーネントの状態を管理します
データバインディング
  • 双方向データバインディング
  • 算出オブザーバブル
  • オブザーバブル配列
  • カスタムバインディング

ベストプラクティス

パフォーマンス
  • 効率的なコレクション: データ収集クエリを最適化します
  • 遅延読み込み: データを必要に応じて読み込みます
  • キャッシュ: 頻繁にアクセスされるデータをキャッシュします
  • ページネーション: 大規模なデータセットに対して適切なページネーションを実装します
コードの構成
  • モジュール構造: コンポーネントを論理的なモジュールに整理します
  • 再利用可能なコンポーネント: 再利用可能なコンポーネントパターンを作成します
  • ドキュメント: 明確なコンポーネントドキュメントを維持します
  • テスト: コンポーネント機能のテストを作成します
ユーザーエクスペリエンス
  • レスポンシブデザイン: モバイルフレンドリーなインターフェースを確保します
  • アクセシビリティ: WCAG 準拠を実装します
  • エラー処理: 明確なエラーメッセージを提供します
  • 読み込み状態: 適切な読み込みインジケーターを表示します

参考資料

ユーザーエクスペリエンスと生産性を向上させる、直感的で高性能な UI コンポーネントの作成に注力してください。

コメント