Concurrent rendering is React's upgraded rendering engine that
useTransition: marks updates as non-urgentstartTransition: wraps low-priority updatesuseDeferredValue: lets React delay some parts of the UISuspense: coordinates loading with fallback UIrenderToPipeableStream for streaming content to browser.import { renderToPipeableStream } from 'react-dom/server';
const stream = renderToPipeableStream(<App />, {
onShellReady() {
stream.pipe(response); // send HTML chunks as they become ready
}
});
Once the server sends down HTML, the browser uses hydrateRoot to attach React’s interactivity to that markup.
You can suppress specific mismatches with suppressHydrationWarning. Use these to send logs to services like Sentry, or trigger custom recovery flows.
hydrateRoot(domNode, <App />, {
onCaughtError(error, info) {
// Recoverable error caught by an Error Boundary
},
onUncaughtError(error, info) {
// Error that wasn’t caught
},
onRecoverableError(error, info) {
// React recovered automatically
}
});