← スキル一覧に戻る

react-patterns
by Brutus88Ai
Industrial Metal Website f
⭐ 0🍴 0📅 2026年1月25日
SKILL.md
name: react-patterns description: React Best Practices, Server Components, Anti-Waterfall
React Patterns
Komponenten-Hierarchie
1. Server Components (Default in Next.js App Router)
// page.tsx - Server Component (kein "use client")
async function Page() {
const data = await fetchData(); // Server-side fetch
return <ClientComponent data={data} />;
}
2. Client Components (nur wenn nötig)
Nur "use client" wenn du brauchst:
- useState, useEffect, useContext
- Event-Handler (onClick, onChange)
- Browser APIs (window, document)
"use client";
import { useState } from 'react';
export function Counter() {
const [count, setCount] = useState(0);
return <button onClick={() => setCount(c => c + 1)}>{count}</button>;
}
Anti-Waterfall Patterns
❌ WATERFALL (SCHLECHT)
async function Page() {
const user = await fetchUser(); // 200ms ⏳
const posts = await fetchPosts(user); // 300ms ⏳
const comments = await fetchComments(posts); // 200ms ⏳
// TOTAL: 700ms sequential
}
✅ PARALLEL (GUT)
async function Page() {
const [user, posts, settings] = await Promise.all([
fetchUser(),
fetchPosts(),
fetchSettings()
]);
// TOTAL: ~300ms (longest request)
}
✅ SUSPENSE STREAMING (BESSER)
import { Suspense } from 'react';
function Page() {
return (
<>
<Header />
<Suspense fallback={<PostsSkeleton />}>
<Posts />
</Suspense>
<Suspense fallback={<CommentsSkeleton />}>
<Comments />
</Suspense>
</>
);
}
State Management
1. Lokaler State (useState)
Nur für UI-State innerhalb einer Komponente.
2. Kontext (useContext)
Für globalen State (Auth, Theme, Cart).
// context/AuthContext.jsx
const AuthContext = createContext();
export const useAuth = () => useContext(AuthContext);
3. URL State (searchParams)
Für filterbaren/teilbaren State:
// ?filter=active&sort=date
const searchParams = useSearchParams();
Lazy Loading
import { lazy, Suspense } from 'react';
const HeavyComponent = lazy(() => import('./HeavyComponent'));
function App() {
return (
<Suspense fallback={<Loading />}>
<HeavyComponent />
</Suspense>
);
}
Checkliste
- Client Components nur wenn nötig
- Parallele Daten-Fetching (Promise.all)
- Suspense für Streaming
- Lazy Loading für schwere Komponenten
- Kein State-Prop-Drilling (Context nutzen)
スコア
総合スコア
50/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です