Skip to content

0.25.0

Choose a tag to compare

@adityareddy-dev adityareddy-dev released this 15 Oct 00:20
· 779 commits to main since this release

Changed

  • 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.

Sources