frontend-developer-skill
ReactやVueなどのフレームワークと最新ツールを使い、モダンなWebアプリケーション開発を包括的に支援するSkill。
📜 元の英語説明(参考)
Comprehensive frontend development specialist for building modern web applications with React, Vue, Angular, and modern tooling including state management, testing, and performance optimization
🇯🇵 日本人クリエイター向け解説
ReactやVueなどのフレームワークと最新ツールを使い、モダンなWebアプリケーション開発を包括的に支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o frontend-developer-skill.zip https://jpskill.com/download/6666.zip && unzip -o frontend-developer-skill.zip && rm frontend-developer-skill.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/6666.zip -OutFile "$d\frontend-developer-skill.zip"; Expand-Archive "$d\frontend-developer-skill.zip" -DestinationPath $d -Force; ri "$d\frontend-developer-skill.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
frontend-developer-skill.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
frontend-developer-skillフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
フロントエンド開発者スキル
目的
最新のフレームワーク(React、Vue、Next.js)を使用した本番環境対応のWebアプリケーション構築、包括的なツール設定、状態管理パターン、テストインフラストラクチャ、およびパフォーマンス最適化戦略に関する完全なフロントエンド開発の専門知識を提供します。
使用場面
- 新しいReact、Vue、またはAngularアプリケーションをゼロから構築する場合
- 最新のフロントエンドツール(Vite、ESLint、Prettier、テストフレームワーク)を設定する場合
- Redux Toolkit、Zustand、またはContext APIで状態管理を実装する場合
- トークン管理と保護されたルートで認証フローを設定する場合
- 本番デプロイメントのためにバンドルサイズとパフォーマンスを最適化する場合
- コンポーネントライブラリとデザインシステムを作成する場合
- 包括的なテスト(単体、統合、E2E)を設定する場合
クイックスタート
このスキルを呼び出す場合:
- React、Vue、またはAngularアプリケーションを構築する場合
- フロントエンドツール(Vite、ESLint、Prettier)を設定する場合
- 状態管理(Redux Toolkit、Zustand、Context)を実装する場合
- 認証フローを設定する場合
- バンドルサイズとパフォーマンスを最適化する場合
- テスト(Vitest、Jest、Playwright)を設定する場合
呼び出さない場合:
- バックエンドAPIのみが必要な場合 → backend-developerを使用してください
- データベースの最適化 → database-optimizerを使用してください
- DevOps/デプロイメントのみ → devops-engineerを使用してください
- コードを伴わないUI/UXデザイン → ui-designerを使用してください
意思決定フレームワーク
フレームワークの選択
Frontend Framework Selection
├─ New Project (greenfield)
│ ├─ Needs SEO + server-side rendering
│ │ ├─ Team knows React → Next.js 14+
│ │ ├─ Team knows Vue → Nuxt.js 3+
│ │ └─ Team flexible → Next.js (ecosystem advantage)
│ │
│ ├─ SPA without SSR requirements
│ │ ├─ React experience → React 18+ (Vite)
│ │ ├─ Vue experience → Vue 3 (Vite)
│ │ └─ Enterprise/complex forms → Angular 15+
│ │
│ └─ Static site (blog, docs)
│ └─ Astro, Next.js SSG, or Vite + React
│
└─ Existing Project
└─ Continue with existing framework (consistency)
状態管理の選択
| シナリオ | ライブラリ | バンドルサイズ | ユースケース |
|---|---|---|---|
| シンプルなローカル状態 | useState, useReducer | 0 KB | コンポーネントレベルの状態 |
| 共有状態(2-3コンポーネント) | Context API | 0 KB | テーマ、認証、シンプルなグローバル |
| 中規模アプリ(<10スライス) | Zustand | ~1 KB | ほとんどのアプリ、優れたDX |
| 大規模アプリ(10+スライス) | Redux Toolkit | ~11 KB | エンタープライズ、タイムトラベルデバッグ |
| サーバー状態 | TanStack Query | ~12 KB | APIデータ、キャッシュ |
スタイリングアプローチ
Styling Decision
├─ Rapid prototyping → Tailwind CSS
├─ Component library → Radix UI + Tailwind
├─ Dynamic theming → CSS-in-JS (Styled Components, Emotion)
├─ Large team → CSS Modules or Tailwind + Design Tokens
└─ Performance-critical → Plain CSS / SCSS
ベストプラクティス
- 関数コンポーネントを使用する - 最新のReactパターンです。
- Hooksを活用する - 可能な限りクラスコンポーネントを避けてください。
- 高コストな操作をメモ化する - useMemo、useCallbackを使用してください。
- コンポーネントを遅延ロードする - 初期バンドルサイズを削減します。
- すべてを型付けする - TypeScriptを活用してください。
- 徹底的にテストする - 単体、統合、E2Eテストを実施してください。
- 画像を最適化する - 最新のフォーマットと遅延ロードを使用してください。
- エラー境界を実装する - エラーを適切に捕捉します。
- アクセシブルにする - ARIAラベル、キーボードナビゲーションを実装してください。
- パフォーマンスを監視する - Core Web Vitalsを追跡してください。
一般的なパターン
カスタムHooks
function useFetch<T>(url: string) {
const [data, setData] = useState<T | null>(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<string | null>(null);
useEffect(() => {
fetch(url)
.then(res => res.json())
.then(setData)
.catch(setError)
.finally(() => setLoading(false));
}, [url]);
return { data, loading, error };
}
コンテナ/プレゼンテーション
// Presentational (dumb)
const UserList = ({ users, onUserClick }: UserListProps) => (
<ul>
{users.map(user => (
<li key={user.id} onClick={() => onUserClick(user.id)}>
{user.name}
</li>
))}
</ul>
);
// Container (smart)
const UserListContainer = () => {
const { users, fetchUsers } = useUsers();
useEffect(() => fetchUsers(), [fetchUsers]);
return <UserList users={users} onUserClick={handleClick} />;
};
トラブルシューティング
一般的な問題
状態が更新されない
- 正しいセッターを使用しているか確認してください。
- useEffectの依存配列を確認してください。
- コンポーネントが再レンダリングされていることを確認してください。
コンポーネントが再レンダリングされない
- 不要な再レンダリングがないか確認してください。
- メモ化が機能しているか確認してください。
- プロパティの変更を確認してください。
パフォーマンスの問題
- React DevToolsでプロファイリングしてください。
- バンドルサイズが大きくないか確認してください。
- 不要な再レンダリングを確認してください。
- コード分割を実装してください。
テストが失敗する
- テスト設定を確認してください。
- モックの実装を確認してください。
- 非同期処理を確認してください。
- 適切なクリーンアップが行われていることを確認してください。
品質チェックリスト
アーキテクチャ
- [ ] フレームワークの選択が正当化されている
- [ ] 状態管理が明確である(サーバー状態とクライアント状態が分離されている)
- [ ] コンポーネント構造が論理的である
- [ ] コード分割が実装されている
コード品質
- [ ] TypeScriptの厳格モードが有効になっている
- [ ] ESLint + Prettierが設定されている
- [ ] 重要なパスのテストが存在する
- [ ] プロップドリリングがない(状態管理を使用する)
パフォーマンス
- [ ] バンドルサイズが最適化されている(gzipで200KB未満)
- [ ] 高コストな操作がメモ化されている
- [ ] 画像が最適化されている(遅延ロード、WebP)
- [ ] サードパーティライブラリが評価されている
テスト
- [ ] テストフレームワークが設定されている
- [ ] 重要なパスがテストされている
- [ ] E2Eテストが存在する
セキュリティ
- [ ] 環境変数が保護されている
- [ ] 入力サニタイズがされている
- [ ] 認証トークンが安全である
- [ ] 依存関係が監査されている
統合パターン
react-specialist
- 引き渡し: frontend-developerがツールを設定 → react-specialistが複雑なコンポーネントロジックを実装します。
- ツール: 両者ともReactを使用します。frontend-developerがエコシステムのツールを扱います。
nextjs-developer
- 引き渡し: SSR/SEOが必要な場合 → Next.js固有の機能のために引き渡します。
- ツール: frontend
(原文がここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Frontend Developer Skill
Purpose
Provides complete frontend development expertise for building production-ready web applications with modern frameworks (React, Vue, Next.js), comprehensive tooling setup, state management patterns, testing infrastructure, and performance optimization strategies.
When to Use
- Building new React, Vue, or Angular applications from scratch
- Setting up modern frontend tooling (Vite, ESLint, Prettier, testing frameworks)
- Implementing state management with Redux Toolkit, Zustand, or Context API
- Configuring authentication flows with token management and protected routes
- Optimizing bundle size and performance for production deployments
- Creating component libraries and design systems
- Setting up comprehensive testing (unit, integration, E2E)
Quick Start
Invoke this skill when:
- Building React, Vue, or Angular applications
- Setting up frontend tooling (Vite, ESLint, Prettier)
- Implementing state management (Redux Toolkit, Zustand, Context)
- Configuring authentication flows
- Optimizing bundle size and performance
- Setting up testing (Vitest, Jest, Playwright)
Do NOT invoke when:
- Only backend API needed → Use backend-developer
- Database optimization → Use database-optimizer
- DevOps/deployment only → Use devops-engineer
- UI/UX design without code → Use ui-designer
Decision Framework
Framework Selection
Frontend Framework Selection
├─ New Project (greenfield)
│ ├─ Needs SEO + server-side rendering
│ │ ├─ Team knows React → Next.js 14+
│ │ ├─ Team knows Vue → Nuxt.js 3+
│ │ └─ Team flexible → Next.js (ecosystem advantage)
│ │
│ ├─ SPA without SSR requirements
│ │ ├─ React experience → React 18+ (Vite)
│ │ ├─ Vue experience → Vue 3 (Vite)
│ │ └─ Enterprise/complex forms → Angular 15+
│ │
│ └─ Static site (blog, docs)
│ └─ Astro, Next.js SSG, or Vite + React
│
└─ Existing Project
└─ Continue with existing framework (consistency)
State Management Selection
| Scenario | Library | Bundle Size | Use Case |
|---|---|---|---|
| Simple local state | useState, useReducer | 0 KB | Component-level state |
| Shared state (2-3 components) | Context API | 0 KB | Theme, auth, simple global |
| Medium app (<10 slices) | Zustand | ~1 KB | Most apps, good DX |
| Large app (10+ slices) | Redux Toolkit | ~11 KB | Enterprise, time-travel debug |
| Server state | TanStack Query | ~12 KB | API data, caching |
Styling Approach
Styling Decision
├─ Rapid prototyping → Tailwind CSS
├─ Component library → Radix UI + Tailwind
├─ Dynamic theming → CSS-in-JS (Styled Components, Emotion)
├─ Large team → CSS Modules or Tailwind + Design Tokens
└─ Performance-critical → Plain CSS / SCSS
Best Practices
- Use functional components - Modern React pattern
- Leverage hooks - Avoid class components when possible
- Memoize expensive operations - Use useMemo, useCallback
- Lazy load components - Reduce initial bundle size
- Type everything - Leverage TypeScript
- Test thoroughly - Unit, integration, and E2E tests
- Optimize images - Use modern formats and lazy loading
- Implement error boundaries - Catch errors gracefully
- Make it accessible - ARIA labels, keyboard navigation
- Monitor performance - Track Core Web Vitals
Common Patterns
Custom Hooks
function useFetch<T>(url: string) {
const [data, setData] = useState<T | null>(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<string | null>(null);
useEffect(() => {
fetch(url)
.then(res => res.json())
.then(setData)
.catch(setError)
.finally(() => setLoading(false));
}, [url]);
return { data, loading, error };
}
Container/Presentational
// Presentational (dumb)
const UserList = ({ users, onUserClick }: UserListProps) => (
<ul>
{users.map(user => (
<li key={user.id} onClick={() => onUserClick(user.id)}>
{user.name}
</li>
))}
</ul>
);
// Container (smart)
const UserListContainer = () => {
const { users, fetchUsers } = useUsers();
useEffect(() => fetchUsers(), [fetchUsers]);
return <UserList users={users} onUserClick={handleClick} />;
};
Troubleshooting
Common Issues
State not updating
- Check if using correct setter
- Verify dependency arrays in useEffect
- Ensure components are re-rendering
Component not re-rendering
- Check for unnecessary re-renders
- Verify memoization is working
- Review prop changes
Performance issues
- Profile with React DevTools
- Check for large bundle sizes
- Review unnecessary re-renders
- Implement code splitting
Tests failing
- Verify test setup
- Check mock implementations
- Review async handling
- Ensure proper cleanup
Quality Checklist
Architecture
- [ ] Framework choice justified
- [ ] State management clear (server vs client state separated)
- [ ] Component structure logical
- [ ] Code splitting implemented
Code Quality
- [ ] TypeScript strict mode enabled
- [ ] ESLint + Prettier configured
- [ ] Tests exist for critical paths
- [ ] No prop drilling (use state management)
Performance
- [ ] Bundle size optimized (<200KB gzipped)
- [ ] Expensive operations memoized
- [ ] Images optimized (lazy loading, WebP)
- [ ] Third-party libraries evaluated
Testing
- [ ] Testing framework configured
- [ ] Critical paths tested
- [ ] E2E tests exist
Security
- [ ] Environment variables secured
- [ ] Input sanitization
- [ ] Auth tokens secure
- [ ] Dependencies audited
Integration Patterns
react-specialist
- Handoff: frontend-developer sets up tooling → react-specialist implements complex component logic
- Tools: Both use React; frontend-developer handles ecosystem tooling
nextjs-developer
- Handoff: When SSR/SEO required → hand off for Next.js-specific features
- Tools: frontend-developer uses Vite/CRA; nextjs-developer uses Next.js App Router
backend-developer
- Handoff: frontend-developer implements API client → backend-developer provides API contracts
- Tools: frontend-developer uses Axios/Fetch, TanStack Query
frontend-ui-ux-engineer
- Handoff: frontend-developer sets up component structure → frontend-ui-ux-engineer styles
- Tools: Both use React; frontend-ui-ux-engineer adds Framer Motion, Tailwind design tokens
Additional Resources
- Detailed Technical Reference: See REFERENCE.md
- Code Examples & Patterns: See EXAMPLES.md