mcpField
R
react-19

react-19

github.com/fusengineDevelopment3452 installsUpdated 4d ago
Repository

About react-19

react-19 is a reference skill for React developers covering core hooks and features, including React 19.3 APIs, classic hooks, and changes from React 18. It also provides implementation patterns and templates.

Key features

  1. 01React 19 hooks and APIs
  2. 02Reference for classic hooks
  3. 03React 18-to-19 migration notes
  4. 04Component and performance templates

Use cases

  1. 01Choose hooks for components
  2. 02Build forms and optimistic updates
  3. 03Migrate a React 18 project
  4. 04Find performance patterns

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/fusengine/agents --skill react-19

After installing, type/react-19in Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
actions-api.md
activity-component.md
context-improvements.md
custom-hooks-patterns.md
document-metadata.md
hooks-improved.md
lazy-loading.md
migration-18-19.md
new-hooks.md
profiling.md
react-compiler.md
ref-as-prop.md
resource-loading.md
suspense-patterns.md
references/templates/
action-form.md
activity-tabs.md
custom-hooks.md
document-metadata.md
effect-patterns.md
error-boundary.md
external-store.md
lazy-components.md
optimistic-update.md
profiling-devtools.md
ref-as-prop.md
ref-patterns.md
resource-loading.md
state-patterns.md
use-context.md
use-deferred-value.md

Details

From the project README
Covers React 19.3's hooks and features: `use()` for reading promises/context in render, `useOptimistic` for instant UI updates, `useActionState` for form action state, `useFormStatus` for child-component pending state, `useEffectEvent` for non-reactive effect callbacks, the `Activity` component for hiding/showing UI while preserving state, `` + `addTransitionType` animations, Fragment refs and `use(browser())` browser-only rendering (new in 19.3), and the React Compiler's automatic memoization (making manual `useMemo`/`useCallback` mostly obsolete).

Also documents all classic hooks (useState, useEffect, useLayoutEffect, useRef, useImperativeHandle, useMemo, useCallback, useId, useSyncExternalStore) and React 18→19 breaking changes (ref as a prop instead of forwardRef, <Context value={}> instead of <Context.Provider>). This is the core React hooks/features skill — for global state see react-state, for forms see react-forms, and for SOLID architecture rules see solid-react.

React 19.3 Core Features

Agent Workflow (MANDATORY)

Before ANY implementation, spawn 3 agents in parallel, one Agent call each with a name:

  1. fuse-ai-pilot:explore-codebase - Analyze existing React patterns and component structure
  2. fuse-ai-pilot:research-expert - Verify latest React 19.3 docs via Context7/Exa
  3. 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.3

Stable in 19.3 (react/react-dom 19.3.0, 2026-09-09; @types/react 19.3 needs TypeScript ≥ 5.6):

APIPurposeGuide
<ViewTransition>Animate enter/exit/update/share via the browser View Transition APIreferences/suspense-patterns.md
addTransitionType(type)Tag a Transition to pick a different animationreferences/suspense-patterns.md
<Fragment ref>FragmentInstance (events, focus, observers) without a wrapper <div>references/ref-as-prop.md
use(browser(reason?)) (react-dom)Browser-only rendering: suspends on the server, Suspense fallback in HTMLreferences/new-hooks.md

Behaviour changes: Transitions no longer entangle, StrictMode double-invokes effects during hydration, DEV warning on conditional use() unblocking → references/migration-18-19.md.

RSC security: react-server-dom-* must be ≥ 19.2.4 (CVE-2025-55182 RCE and follow-up DoS CVEs); prefer ≥ 19.2.7 or 19.3.0.

New Hooks (19.0–19.2)
HookPurposeGuide
use()Read promises/context in renderreferences/new-hooks.md
useOptimisticOptimistic UI updatesreferences/new-hooks.md
useActionStateForm action state managementreferences/new-hooks.md
useFormStatusForm pending state (child components)references/new-hooks.md
useEffectEventNon-reactive callbacks in effectsreferences/new-hooks.md

→ See references/new-hooks.md for detailed usage


Classic Hooks (React 18+)

State Hooks
HookPurposeGuide
useStateLocal component statereferences/use-state.md

→ For global state, see react-state skill

Effect Hooks
HookPurposeGuide
useEffectSide effects after paintreferences/use-effect.md
useLayoutEffectSync DOM before paintreferences/use-layout-effect.md
Ref Hooks
HookPurposeGuide
useRefDOM access, mutable valuesreferences/use-ref.md
useImperativeHandleCustomize ref APIreferences/use-imperative-handle.md
Performance Hooks (Rare with Compiler)
HookPurposeGuide
useMemoMemoize expensive valuesreferences/use-memo.md
useCallbackMemoize functionsreferences/use-callback.md

→ React Compiler handles most memoization automatically

Other Hooks
HookPurposeGuide
useIdUnique IDs for accessibilityreferences/use-id.md
useSyncExternalStoreExternal store subscriptionreferences/use-sync-external-store.md
Custom Hooks

→ See references/custom-hooks-patterns.md for patterns → See references/templates/custom-hooks.md for implementations


Activity Component (stable since 19.2)

Hide/show components while preserving state:

<Activity mode={isActive ? 'visible' : 'hidden'}>
  <TabContent />
</Activity>

→ See references/activity-component.md for patterns

React Compiler (1.0 stable, Oct 2025 — React 17+)

Automatic memoization - useMemo/useCallback mostly obsolete:

  • Build-time optimization
  • No more manual memoization in most cases
  • 2.5× faster interactions reported

→ See references/react-compiler.md for details


Quick Reference

use() Hook
// 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.md

useOptimistic
const [optimisticValue, setOptimistic] = useOptimistic(actualValue)
// Update UI immediately, server updates later

→ See references/templates/optimistic-update.md

useActionState
const [state, action, isPending] = useActionState(asyncFn, initialState)

→ See references/templates/action-form.md

useEffectEvent (stable since 19.2)
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.md


Breaking Changes from 18

ChangeMigration
ref is a propRemove forwardRef wrapper
Context is providerUse <Context value={}> directly
useFormStatusImport from react-dom

→ See references/migration-18-19.md


Best Practices

  1. Data fetching: Use use() + Suspense, NOT useEffect
  2. Forms: Use Actions + useActionState
  3. Optimistic UI: Use useOptimistic for instant feedback
  4. Tabs/Modals: Use <Activity> to preserve state
  5. Effect events: Use useEffectEvent for non-reactive callbacks
  6. Memoization: Let React Compiler handle it

Templates

React 19 Patterns
TemplateUse Case
templates/action-form.mdForm with useActionState
templates/optimistic-update.mduseOptimistic pattern
templates/activity-tabs.mdActivity component tabs
templates/use-promise.mduse() with promises
Classic Hooks Patterns
TemplateUse Case
templates/state-patterns.mduseState patterns
templates/effect-patterns.mduseEffect patterns
templates/ref-patterns.mduseRef patterns
templates/custom-hooks.mdCustom hooks implementations
templates/external-store.mduseSyncExternalStore patterns
Performance Patterns
TemplateUse Case
templates/virtual-list.mdTanStack Virtual for long lists
templates/lazy-components.mdCode splitting and lazy loading
templates/profiling-devtools.mdReact DevTools Profiler

Performance

Virtualization

Render only visible items for large lists (100+ items). → See references/virtualization.md

Lazy Loading

Code split routes and heavy components for smaller bundles. → See references/lazy-loading.md

Profiling

Measure render performance with DevTools Profiler. → See references/profiling.md

Note: With React Compiler (1.0+), manual memo/useMemo/useCallback optimizations are mostly obsolete. Profile first to verify if optimization is needed.


Forbidden (Outdated Patterns)

  • ❌ useEffect for data fetching → use use() + Suspense
  • ❌ forwardRef → use ref as prop
  • ❌ <Context.Provider> → use <Context value={}>
  • ❌ Manual useMemo/useCallback everywhere → let Compiler handle it
  • ❌ Conditional rendering for state preservation → use <Activity>

Comments

Markdown supported