-
Notifications
You must be signed in to change notification settings - Fork 49.6k
Comparing changes
Open a pull request
base repository: facebook/react
base: b0c1dc01
head repository: facebook/react
compare: df38ac9a
- 7 commits
- 30 files changed
- 6 contributors
Commits on Sep 25, 2025
-
[playground] Fix useEffect on tabify (#34594)
There was a bug in the Compiler Playground related to the "Show Internals" toggle due to a useEffect that was causing the tab names to flicker from a rerender. Rewritten instead with a `<Suspense>` boundary + `use`.
Configuration menu - View commit details
-
Copy full SHA for 250f1b2 - Browse repository at this point
Copy the full SHA 250f1b2View commit details
Commits on Sep 26, 2025
-
[Flight] Preload <img> and <link> using hints before they're rendered (…
…#34604) In Fizz and Fiber we emit hints for suspensey images and CSS as soon as we discover them during render. At the beginning of the stream. This adds a similar capability when a Host Component is known to be a Host Component during the Flight render. The client doesn't know that these resources are in the payload until it parses that particular component which is lazy. So they need to be hoisted with hints. We detect when these are rendered during Flight and add them as hints. That allows you to consume a Flight payload to preload prefetched content without having to render it. `<link rel="preload">` can be hoisted more or less as is. `<link rel="stylesheet">` we preload but we don't actually insert them anywhere until they're rendered. We do these even for non-suspensey stylesheets since we know that when they're rendered they're going to start loading even if they're not immediately used. They're never lazy. `<img src>` we only preload if they follow the suspensey image pattern since otherwise they may be more lazy e.g. by if they're in the viewport. We also skip if they're known to be inside `<picture>`. Same as Fizz. Ideally this would preload the other `<source>` but it's tricky. The downside of this is that you might conditionally render something in only one branch given a client component. However, in that case you're already eagerly fetching the server component's data in that branch so it's not too much of a stretch that you want to eagerly fetch the corresponding resources as well. If you wanted it to be lazy, you should've done a lazy fetch of the RSC. We don't collect hints when any of these are wrapped in a Client Component. In those cases you might want to add your own preload to a wrapper Shared Component. Everything is skipped if it's known to be inside `<noscript>`. Note that the format context is approximate (see #34601) so it's possible for these hints to overfetch or underfetch if you try to trick it. E.g. by rendering Server Components inside a Client Component that renders `<noscript>`. --------- Co-authored-by: Josh Story <josh.c.story@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 047715c - Browse repository at this point
Copy the full SHA 047715cView commit details -
[DevTools] Disable the tree list for now (#34606)
When there are no named Activities we should hide the tree side panel (and the button to show it). Since it's not implemented yet there are never any ones so it's always hidden.
Configuration menu - View commit details
-
Copy full SHA for 1fd291d - Browse repository at this point
Copy the full SHA 1fd291dView commit details -
[DevTools] Track Server Environment Names of Each SuspenseNode (#34605)
Tracks the environment names of the I/O in each SuspenseNode and sent it to the front end when the suspenders change. In the front end, every child boundary should really be treated as it has all environment names of the parents too since they're blocked by the parent too. We could do this tracking on backend but if there's ever one added on the root would need to be send for every child. This lets us highlight which subtrees are blocked by content on the server. --------- Co-authored-by: Sebastian "Sebbie" Silbermann <silbermann.sebastian@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 6a51a9f - Browse repository at this point
Copy the full SHA 6a51a9fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8d557a6 - Browse repository at this point
Copy the full SHA 8d557a6View commit details -
Bump useEffectEvent to Canary (#34610)
Bumps `useEffectEvent` from `@experimental` to `@canary`. Removes the `experimental_` prefix from the export. ## TODO - [ ] Update useEffectEvent reference page and Canary badging in docs: reactjs/react.dev#8025
Configuration menu - View commit details
-
Copy full SHA for 8bb7241 - Browse repository at this point
Copy the full SHA 8bb7241View commit details -
Configuration menu - View commit details
-
Copy full SHA for df38ac9 - Browse repository at this point
Copy the full SHA df38ac9View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff b0c1dc01...df38ac9a