React 19 · Quick recall Q&A
2 min readQuick recall Q&A
The React Compiler automatically adds memoization. You don't need to change code, but you can remove manual useMemo, useCallback, and React.memo calls as the compiler handles optimization.
useActionState manages the full action lifecycle (state, action function, pending). useFormStatus only provides pending state and must be used inside a form's child component.
Use it when you want immediate UI feedback before an async operation completes. It automatically reverts if the action fails.
Server Components require a bundler setup. Frameworks like Next.js, Remix, or Waku provide the necessary infrastructure. Manual setup is complex.
Server Components are components that render on the server (read data, no interactivity). Server Actions are functions that run on the server and can be called from Client Components (mutations, form handling).
No, function components can receive ref as a regular prop. forwardRef still works for backwards compatibility but is no longer needed.
use integrates with Suspense - it suspends the component while the promise resolves. It can also be called conditionally, unlike other hooks. It's for rendering, while await is for effects/actions.
It was renamed to useActionState in the final React 19 release. The functionality is the same.
Actions work best for forms that need server interaction or complex state. Simple client-only forms can continue using controlled components with useState.
Return error state from the action and handle it in the component. Use try/catch in the action and return { error: message } that the component can display.