react-component-patterns
Provides architectural patterns and composition strategies for building React components.
Install
mkdir -p .claude/skills/react-component-patterns && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/1392" && unzip -o skill.zip -d .claude/skills/react-component-patterns && rm skill.zipInstalls to .claude/skills/react-component-patterns
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Build modern React component architecture with composition patterns. Use when designing reusable React components, applying composition patterns, or structuring component hierarchies.Key capabilities
- →Implement compound components with Context
- →Structure React component hierarchies
- →Apply composition patterns for layout
- →Manage controlled versus uncontrolled state
- →Use React 19 ref patterns
How it works
It enforces composition-first architecture using children or named slots and utilizes Context for shared state in compound components. It mandates explicit TypeScript interfaces and avoids prop drilling by favoring Context or Zustand.
Inputs & outputs
When to use react-component-patterns
- →Structuring complex component hierarchies
- →Implementing reusable component composition
- →Refactoring legacy component patterns
- →Standardizing UI architecture
About this skill
React Component Patterns
Priority: P0 (CRITICAL)
Implementation Guidelines
- Architecture (default): Composition first —
children/named slot props for layout, Compound Components (e.g.,<Select><Select.Option /></Select>) via Context for implicit shared state within one UI unit. Reach for Higher-Order Components or classic Render Props (render={(data) => ...}) only when composition can't express it (e.g. wrapping a third-party class component) — hooks cover most cross-cutting concerns HOCs used to. - React 19:
refis a regular prop on function components — noforwardRefneeded for new code. Useuse(promise)/use(context)to read a promise or context conditionally in render instead ofuseContext+ extrauseEffectplumbing. - Components: Distinguish between Controlled (state from props) and Uncontrolled (local
useRefstate) components. Favor controlled for form validation. - Props: Use Explicit TS interfaces. Avoid Prop Drilling by leveraging Context API or Zustand for global/deeply nested state.
- Boolean Props: Shorthand
<Cmp isVisible />vsisVisible={true}. - Conditionals: Ternary (
Cond ? <A/> : <B/>) over&&for rendering consistency (prevents0rendering). - Function Components: Only hooks. No classes. Small size (<250 lines). One component per file.
- Exports: Named exports only. PascalCase naming.
function ThemedInput({ ref, ...props }: { ref?: React.Ref<HTMLInputElement> } & InputProps) {
return <input ref={ref} className={useTheme().input} {...props} />;
}
Verify
- Shared implicit state uses Compound Components + Context, not prop drilling.
-
refpassed as a plain prop (noforwardRef) on components targeting React 19. - HOC/classic render-props only where composition genuinely can't express the wrap.
Anti-Patterns
- No Classes: Use hooks.
- No Prop Drilling: Use Context/Zustand.
- No Nested Definitions: Define components at top level.
- No Index Keys: Use stable IDs.
- No forwardRef on new React 19 code: Accept
refas a normal prop instead.
References
See references/patterns.md for Composition, Compound Components, and Render Props examples.
When not to use it
- →When using class-based components
- →For simple logic that does not require composition
Prerequisites
Limitations
- →No support for class components
- →Requires stable IDs instead of index keys
How it compares
It prioritizes composition and modern React 19 patterns over legacy class components or prop-drilling techniques.
Compared to similar skills
react-component-patterns side by side with the closest alternatives in the catalog.
Try saying
Example prompts that trigger this skill in your AI assistant.
More by HoangNguyen0403
View all by HoangNguyen0403 →You might also like
zustand
lobehub
Zustand state management guide. Use when working with store code (src/store/**), implementing actions, managing state, or creating slices. Triggers on Zustand store development, state management questions, or action implementation.
react
lobehub
React component development guide. Use when working with React components (.tsx files), creating UI, using @lobehub/ui components, implementing routing, or building frontend features. Triggers on React component creation, modification, layout implementation, or navigation tasks.
zustand-5
prowler-cloud
Zustand 5 state management patterns. Trigger: When implementing client-side state with Zustand (stores, selectors, persist middleware, slices).
1k-state-management
OneKeyHQ
Jotai state management patterns — atoms, globalAtom, contextAtom, and persistence.
react-router-getting-started
ssrjkk
Getting Started for React-Router: initial setup and first steps
accessibility-compliance
wshobson
Implement WCAG 2.2 compliant interfaces with mobile accessibility, inclusive design patterns, and assistive technology support. Use when auditing accessibility, implementing ARIA patterns, building for screen readers, or ensuring inclusive user experiences.