react-19
Original:🇺🇸 English
Translated
React 19.2 features - use(), useOptimistic, useActionState, useEffectEvent, Activity component, React Compiler. Use when implementing React 19 patterns.
3installs
Sourcefusengine/agents
Added on
NPX Install
npx skill4agent add fusengine/agents react-19Tags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →React 19.2 Core Features
Agent Workflow (MANDATORY)
Before ANY implementation, use to spawn 3 agents:
TeamCreate- fuse-ai-pilot:explore-codebase - Analyze existing React patterns and component structure
- fuse-ai-pilot:research-expert - Verify latest React 19.2 docs via Context7/Exa
- mcp__context7__query-docs - Check use(), useOptimistic, useActionState, Activity patterns
After implementation, run fuse-ai-pilot:sniper for validation.
What's New in React 19.2
New Hooks
| Hook | Purpose | Guide |
|---|---|---|
| Read promises/context in render | |
| Optimistic UI updates | |
| Form action state management | |
| Form pending state (child components) | |
| Non-reactive callbacks in effects | |
→ See for detailed usage
references/new-hooks.mdClassic Hooks (React 18+)
State Hooks
| Hook | Purpose | Guide |
|---|---|---|
| Local component state | |
→ For global state, see skill
react-stateEffect Hooks
| Hook | Purpose | Guide |
|---|---|---|
| Side effects after paint | |
| Sync DOM before paint | |
Ref Hooks
| Hook | Purpose | Guide |
|---|---|---|
| DOM access, mutable values | |
| Customize ref API | |
Performance Hooks (Rare with Compiler)
| Hook | Purpose | Guide |
|---|---|---|
| Memoize expensive values | |
| Memoize functions | |
→ React Compiler handles most memoization automatically
Other Hooks
| Hook | Purpose | Guide |
|---|---|---|
| Unique IDs for accessibility | |
| External store subscription | |
Custom Hooks
→ See for patterns
→ See for implementations
references/custom-hooks-patterns.mdreferences/templates/custom-hooks.mdActivity Component (19.2)
Hide/show components while preserving state:
typescript
<Activity mode={isActive ? 'visible' : 'hidden'}>
<TabContent />
</Activity>→ See for patterns
references/activity-component.mdReact Compiler (19.1+)
Automatic memoization - useMemo/useCallback mostly obsolete:
- Build-time optimization
- No more manual memoization in most cases
- 2.5× faster interactions reported
→ See for details
references/react-compiler.mdQuick Reference
use() Hook
typescript
// Read promise in render (with Suspense)
const data = use(dataPromise)
// Read context conditionally (unique to use())
if (condition) {
const theme = use(ThemeContext)
}→ See
references/templates/use-promise.mduseOptimistic
typescript
const [optimisticValue, setOptimistic] = useOptimistic(actualValue)
// Update UI immediately, server updates later→ See
references/templates/optimistic-update.mduseActionState
typescript
const [state, action, isPending] = useActionState(asyncFn, initialState)→ See
references/templates/action-form.mduseEffectEvent (19.2)
typescript
const onEvent = useEffectEvent(() => {
// Always has fresh props/state, doesn't trigger re-run
})
useEffect(() => {
connection.on('event', onEvent)
}, []) // No need to add onEvent to deps→ See
references/new-hooks.mdBreaking Changes from 18
| Change | Migration |
|---|---|
| Remove |
| Use |
| Import from |
→ See
references/migration-18-19.mdBest Practices
- Data fetching: Use + Suspense, NOT useEffect
use() - Forms: Use Actions + useActionState
- Optimistic UI: Use for instant feedback
useOptimistic - Tabs/Modals: Use to preserve state
<Activity> - Effect events: Use for non-reactive callbacks
useEffectEvent - Memoization: Let React Compiler handle it
Templates
React 19 Patterns
| Template | Use Case |
|---|---|
| Form with useActionState |
| useOptimistic pattern |
| Activity component tabs |
| use() with promises |
Classic Hooks Patterns
| Template | Use Case |
|---|---|
| useState patterns |
| useEffect patterns |
| useRef patterns |
| Custom hooks implementations |
| useSyncExternalStore patterns |
Performance Patterns
| Template | Use Case |
|---|---|
| TanStack Virtual for long lists |
| Code splitting and lazy loading |
| React DevTools Profiler |
Performance
Virtualization
Render only visible items for large lists (100+ items).
→ See
references/virtualization.mdLazy Loading
Code split routes and heavy components for smaller bundles.
→ See
references/lazy-loading.mdProfiling
Measure render performance with DevTools Profiler.
→ See
references/profiling.mdNote: With React Compiler (19.1+), manual memo/useMemo/useCallback optimizations are mostly obsolete. Profile first to verify if optimization is needed.
Forbidden (Outdated Patterns)
- ❌ for data fetching → use
useEffect+ Suspenseuse() - ❌ → use
forwardRefas propref - ❌ → use
<Context.Provider><Context value={}> - ❌ Manual useMemo/useCallback everywhere → let Compiler handle it
- ❌ Conditional rendering for state preservation → use
<Activity>