Member-only story
React 19 Features That Change Everything
React 19 is not simply an upgrade, it’s a reimagining of UI construction. This is what matters, and how to use it right now.
NOT in a breaking way (React would NEVER do that) However, in that tedious, inevitable way you start to realise the bits you have been stitching together are now being baked into the foundation. If you’re building with React. js, Next. If you ever touch any code here in JavaScript or TypeScript, you should look out for the changes here.
Now, to actual changes — or more specifically consequences of how you need to write.
1. useActionState — Forms Finally Make Sense
For as long as React has been around, form state has meant grappling with useState, useEffect, loading flags, error states and optimistic updates (all manual). That’s where useActionState comes into play: a new hook in React 19 that puts all of that behind an elegant single API.
// Before React 19 — the usual mess
const [isPending, setIsPending] = useState(false);
const [error, setError] = useState<string | null>(null);
async function handleSubmit(e: React.FormEvent) {
e.preventDefault();
setIsPending(true);
try {
await submitForm(data);
} catch (err) {
setError("Something went wrong.");
} finally {
setIsPending(false);
}
}






