Post

The transitions not firing was interesting. In React 18 I had a transition start that was technically async (start transition -> iframe message -> get message back -> set state to trigger suspense). In React 19 that doesn't work anymore.

0 reposts3 likes

Yeah, this is a controversial one but I think the tradeoff off makes sense if you consider the UX without it.

The principle is that if you paint a loading state to the user, you should show it for a small amount of time so the user can at least see the fallback instead of seeing flickers in the UI.

As devs we care a lot about raw perf, but UX research shows that flickering is perceived as slower than showing a loading state (to a point). Slower is sometimes better. So yes the throttling is a perf tax, but it’s a UX gain.

It’s also not always slower. I’ve built some demos that show throttling can result in getting to the final content faster, because multiple commits of content can commit together (like two signings that suspend but resolve within 50ms of each other).