You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A layout forced in a commit with several roots is named after the component they all sit under, with the whole
commit's count. A Radix dialog mounts its overlay and its content as two portals under DialogPortal, so on plate
the search dialog's opening was blamed on CommandGroup, the end of the path through the content, where the read
that forced the layout can be in either. It now reads "rendering 89 components inside DialogPortal", and the
devtools entry names DialogPortal too. Where the roots sit under no component it names the app. hotPath is
unchanged, and a report stored by an earlier release is named as before.
"React rendered N times before the screen updated" counts every commit that rendered a component on a production
build too, as it has on a development build since 0.19.0. Before, a production build counted only commits of 10
components or more, so plate's search dialog read "React rendered 8 times" where 13 commits rendered. The note is
still said only where two of those renders had work in them, and the Performance panel's Summary count moves with it.
A render is said to be mounting only where every component it rendered mounted. 0.24.0 drew the line at nine in
ten, so on plate the render after the search dialog opened read "75 ms mounting 1959 components" where 1838 mounted
and 121 re-rendered, and that reads as 1959 mounts. The count was right and the verb wasn't. It now reads
"rendering 1959 components", the dialog's own mount of 89 with 87 new reads "rendering 89 components" too, and the
badge panel's rows say "rendered". A render where every component mounted still reads "mounting".
A forced layout is said to overlap React's render only where the render inside the time it was counted across is
more than what the layout left of it. Before, the render set against that time took in commits between one event's
handlers and the next's, which the time leaves out, so on plate's search dialog 62 ms of rendering, 45 of it between
the pointerdown's handlers and the pointerup's, was set against the 28 ms left and the cause said the layout
overlapped React's render. The click's own renders were 17 ms. It now says what was left, and where React's total
is more than that, how much of it came between the handlers: "Of the 62 ms, 45 ms came between the pointerdown's
handlers and the pointerup's, outside the 168 ms."
A later render is said to have made the browser recalculate styles and layout only for what the scripts it
committed or ran its effects in forced. Before, it took every script in its frames, so on plate's search dialog in
development a dev overlay's animation frame callback, which forced 7 ms (45 ms at 4x CPU throttling) after React's
task had forced none, was put on the render. That clause is gone there.