This Week In React #190 : Suspense, Internals Explorer, DevTools, RSC + Vite, Codemod, Astro, INP, composition, Reassure, Fumadocs, tscircuit...

This Week In React #190 : Suspense, Internals Explorer, DevTools, RSC + Vite, Codemod, Astro, INP, composition, Reassure, Fumadocs, tscircuit...

Hi everyone!

I (Seb) am back, and happy to share that the newsletter crossed 40 000 subscribers! 🎉

Thanks for your support and for sharing the newsletter with your friends.
Any idea to make it even better, share feedback, or submit a link? Just reply to this email!

This week the React 19 stable release that we expected very soon is delayed a bit due to a controversial change in how Suspense behaves.

On the React Native side, the first RC of 0.75 is expected very soon, running under React 19.

💡 Subscribe to the official newsletter to receive an email every week!


💸 Sponsor

The Category-Defining React Grid for Your Enterprise

The Category-Defining React Grid for Your Enterprise

Data grids are complex components of web applications, but current solutions are inefficient, require a lot of maintenance, and perform poorly. Graphite Grid transforms the landscape with two key features: retargetable rendering and reactive signal state.

Graphite Grid separates grid state from view logic, allowing a single unified state model to support a variety of render targets, declaratively or imperatively. It includes a DOM and Canvas renderer, giving developers flexible, high-performance options 🚀.

Graphite Grid is declarative and consistent, leveraging state signals to ensure seamless integration with your application. Designed with React in mind, it is the only JavaScript data grid built with React's state management primitives. Try it now!

⚛️ React

Suspense with siblings

React 19 and Suspense - A Drama in 3 Acts

React 19 RC.0 was released 2 weeks ago and could have become the React 19 stable release we've been waiting for. Unfortunately, it contains a controversial change to the Suspense behavior, leading the React team to talk and decide to delay the release until a solution is found.

Unlike React 18, in v19 if a component suspends, its siblings won't render anymore, leading to potential waterfalls. In many situations (using “fetch-on-render” pattern, using React.lazy()...), async code might run sequentially instead of in parallel. There’s a good reason motivating this change: the ability to display Suspense fallbacks sooner, and avoid rendering components uselessly. In theory, waterfalls could be avoided if requests were “hoisted” at the router level (using the “render-as-you-fetch” pattern), but many existing apps do not do that and would suffer from degraded performances.

Related resources:

React Internals Explorer - screenshot + logo

React Internals Explorer - easily see how React works

A new interactive playground to see how React works under the hood. It’s possible to explore internals step-by-step. You can even select the React version, and it’s particularly relevant for today’s issue because it can show the Suspense behavior difference between React 18 and React 19!

💸 Sponsor

Join The React Native Performance Optimization Course

Join The React Native Performance Optimization Course

No App Can Be A Patchwork Planet

So if you want to react well to its performance bottlenecks, you need to understand their origins.

This live training program will help you solve optimization mysteries based on a data-driven approach called DMAIC 🕵️

5 Interactive Modules, 3 Seasoned React Native Experts, and 1 Future-Proof Framework that will nurture your development lifecycle holistically.

Want to join the mission? 🚀 Sign up for the waiting list today and mark your calendar for July 9-10!

📱 React-Native

This section is authored by Benedikt.

As there is no “big headline news” this week, I want to take the opportunity to celebrate two projects within the React Native community. The team behind React Native visionOS received the React Open Source Award in the category “Most Exciting Use of Technology,” and the team at Infinite Red released the 300th episode of the React Native Radio podcast this week. Congratulations to both teams and thank you for the work you all do for our community!

🔀 Other

🤭 Fun


See ya! 👋

Did you find this article valuable?

Support Sébastien Lorber by becoming a sponsor. Any amount is appreciated!