React 19's Suspense Improvements: Can You Actually Feel the Difference?
Has anyone tried the React 19 beta? I heard Suspense got more powerful for data fetching, but when I actually used it, I didn't notice a huge difference compared to the existing React Query. The official docs say it works well with server components, but I'm still not getting a clear picture. Would appreciate any shared experiences.
6 answers
I've also tried React 19 beta, and Suspense really seems to shine in SSR. While traditional React Query is specialized for client-side fetching, the combination of Suspense + server components handles the initial loading on the server side, which significantly reduces TTI. I'd recommend giving server components a try for migration.
I actually felt a big difference! Especially with nested Suspense becoming more natural, managing loading states on pages with multiple data dependencies has become much cleaner. React Query is great too, but it feels like Suspense alone has become powerful enough.
Could you please elaborate on which aspects you felt were no different? I'm also considering adopting it, so I'm curious about the actual user experience. In particular, I'd like to know if Suspense works well when used together with ErrorBoundary.
I haven't tried it yet, but just from looking at the official docs, I find it interesting how Suspense integrates with the existing useTransition. Compared to React Query, it seems to solve problems at a different layer, so a direct comparison might be tricky.
Personally, I felt Suspense more in code splitting than in data fetching. Combined with lazy loading, it makes bundle size management much easier and improves the user experience. As for the data side, I think it's still in the experimental stage.
I agree! I was also used to React Query, so Suspense felt unfamiliar at first, but after using it together with server components in a simple project, I could definitely feel its advantages. I was especially amazed by the progressive rendering in streaming SSR. If you have some free time, try testing it out with a small toy project.