React 19: Actions, RSC & Forms
The version that removed the boilerplate
Section titled “The version that removed the boilerplate”React 19 is less about new syntax and more about deleting patterns you used to write by hand. The recurring theme: things you used to wire up manually — loading flags, try/catch around a submit, useMemo everywhere, forwardRef wrappers — React now does for you.
This module covers the five changes that matter most in day-to-day code.
What this module covers
Section titled “What this module covers”| Lesson | What you’ll learn |
|---|---|
| Server Components | Components that run on the server, fetch directly, and never ship to the client |
| Actions & useActionState | Async form actions with built-in pending/error state |
| Forms & useOptimistic | useFormStatus and instant optimistic UI |
| The React Compiler | Build-time auto-memoization that retires manual useMemo/useCallback |
The through-line
Section titled “The through-line”flowchart LR old["Before: you wrote it loading flags · try/catch useMemo everywhere · forwardRef"] --> r19["React 19"] r19 --> new["Now React does it Actions + useActionState Compiler auto-memo ref as a prop"]
Beyond this module’s four topics, two smaller React 19 wins show up everywhere:
refis now a prop. Function components acceptrefdirectly —forwardRefis no longer needed for new code (covered in the Hooks module).- The
use()hook reads a promise or context and integrates with Suspense (covered in the Concurrent module). It’s the client half of the Server Components data story.