Summary
React 19 Beta is now available on npm! In our React 19 Beta Upgrade Guide, we shared step-by-step instructions for upgrading your app to React 19. In this post, we’ll give an overview of the new features in React 19, and how you can adopt them.
In React 19, we’re adding a new hook called useFormStatus to make this easier. UseFormStatus reads the status of the form it’s attached to. We’ve also added a new way to read a promise with usePromise.
React 19 includes all of the React Server Components included in the Canary release. This means libraries that ship with React 19 can now be used as a peer dependency with a react-server export condition for use in frameworks that support the Full-stack React Architecture. For more, see the docs for React 19.
In React 19, you can render
For simple use cases, rendering Document Metadata as tags may be suitable, but libraries can offer more powerful features like overriding generic metadata with specific metadata. By supporting these metadata tags natively, we’re able to ensure they work with client-only apps, streaming SSR, and Server Components.
If an element that renders on the client doesn’t match the element found in the server, React will force a client re-render to fix up the content. Previously, if an element was inserted by third-party scripts or browser extensions, it would trigger a mismatch error and client render.
use
is what I'm most excited about! I've always hated that hooks, like foruseContext
, needed to run even though they would get thrown away.