Marketplace

applying-frontend-patterns

フレームワーク非依存のフロントエンドコンポーネント設計パターン。トリガー: React, Vue, Angular, コンポーネント, パターン, hooks, カスタムフック, container, presentational, 分離, 状態管理, state management, composition, HOC, render props

allowed_tools: Read, Grep, Glob, Task

$ インストール

git clone https://github.com/thkt/claude-config /tmp/claude-config && cp -r /tmp/claude-config/.ja/skills/applying-frontend-patterns ~/.claude/skills/claude-config

// tip: Run this command in your terminal to install the skill


name: applying-frontend-patterns description: > フレームワーク非依存のフロントエンドコンポーネント設計パターン。トリガー: React, Vue, Angular, コンポーネント, パターン, hooks, カスタムフック, container, presentational, 分離, 状態管理, state management, composition, HOC, render props allowed-tools: Read, Grep, Glob, Task

フロントエンドパターン

目的

保守可能なフロントエンドアーキテクチャのためのコンポーネント設計パターン。パターンは普遍的で、実装はフレームワークにより異なる。

コアパターン概要

パターンコンセプト使用タイミング
Container/PresentationalロジックとUIの分離データ取得 + 表示
カスタムフック(React)再利用可能なステートフルロジックコンポーネント間で共有する振る舞い
コンポジションシンプルから複雑を構築柔軟で再利用可能なコンポーネント
状態管理アプリケーションデータの整理ローカル → 共有 → グローバル

Container/Presentationalパターン

主要原則: 関心の分離

Container(ロジック)Presentational(UI)
データを取得propsでデータを受け取る
状態を管理ステートレス(理想)
イベントを処理コールバックpropsを呼び出す
スタイリングなしすべてのスタイリングがここ

適用ルール:

  1. Presentational(UIのみ、props駆動)から開始
  2. ロジックが必要なときにContainerを追加
  3. 再利用可能なときにカスタムフックに抽出

Hooksガイドライン(React)

Hook用途避けるべき落とし穴
useEffect副作用依存関係の欠落
useMemo高コストな計算早すぎる最適化
useCallback安定した関数参照過度なメモ化
カスタムフック再利用可能なロジックuseで始めない

依存関係ルール: effect内で使用するすべての値を常に含める。

状態管理戦略

スコープツール(React)
ローカルuseStateフォーム入力、トグル
共有Contextテーマ、認証状態
グローバルZustand/Reduxアプリ全体のキャッシュ

粒度ルール: 大きな状態オブジェクトは別々の状態に分割。

コンポジションパターン

パターンユースケース
childrenラッパーコンポーネント、カード、モーダル
render propsデータに基づく動的レンダリング
HOC横断的関心事(認証、ロギング)

フレームワーク比較

パターンReactVueAngular
分離Container/PresentationalComposition APISmart/Dumb
状態useState, Contextref, reactiveServices
副作用useEffectwatch, onMountedngOnInit
スロットchildrenslotsng-content

パターンを使わないとき

  • シンプルな一回限りのコンポーネント
  • プロトタイプ(YAGNI)
  • 再利用が期待されない

ルール: 予測ではなく、痛みを感じたときにパターンを追加。

参照

パターン

関連スキル

  • frontend-design(公式) - ビジュアルデザイン品質(タイポグラフィ、色、アニメーション)
  • enhancing-progressively - CSS優先プログレッシブエンハンスメント
  • integrating-storybook - コンポーネントの可視化

使用コマンド

  • /code --frontend - Reactコンポーネント実装
  • /audit - フロントエンドパターン検証

参照

  • /example-skills:frontend-design - 特徴的なUIエステティクスの公式スキル