react
Installation
SKILL.md
Critical Patterns
Custom Hooks (REQUIRED)
// ✅ ALWAYS: Extract reusable logic into custom hooks
function useUser(userId: string) {
const [user, setUser] = useState<User | null>(null);
const [loading, setLoading] = useState(true);
useEffect(() => {
fetchUser(userId).then(setUser).finally(() => setLoading(false));
}, [userId]);
return { user, loading };
}
// ❌ NEVER: Duplicate logic across components