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
Duration of re-renderings from the video for rc-tree and all of its descendants:
re-rendering no.1: 11.6 ms
re-rendering no.2: 6.1 ms
re-rendering no.3: 13.5 ms
Re-rendering screenshots
Re-rendering no.1:
Re-rendering no.2:
Re-rendering no.3:
My questions are:
Is this a known behavior?
Is it possible to fix it? (reduce number of re-renderings from 3 to 1. This should improve performance dramatically (11.6ms vs 31.2 ms - almost 3 times faster)
Thank you for your work and thank you in advance
The text was updated successfully, but these errors were encountered:
I am happy that you have "only" three (react)-re-renders. In my component a single change on a TreeNode such as expanding it, triggers up 70 re-renders. On a simple interaction such as mouse over on a item or expanding a node with maybe 10 items (including children) in total it causes up to 680 re-renders. And yes, nothing on my renderTitle component was changed, no keys, no props. Everything the same but tons of re-renders.
we also found rc-tree one of the most under performing component. Chrome Dev Tools React Profiler indicates many times more unnecessary re-renders. imho, applying memoization to all func callbacks and data will help the problem.
So I would cover it with useCallback and useMemo whenever possible
Disclaimer: I use the term re-renderings. By this term here I mean react re-renderings and not browser re-renderings.
I have prepared a code example to reproduce the issue: codesandbox
Code example can be tested in separate window: separate window
Steps to reproduce:
treeData
will be completely recalculated and passed into rc-tree componenttreeData
has changed)CustomTreeNode
will be re-rendered, whichSwitch
component I have toggled on step 2.CustomTreeNode
will be re-rendered -> OKExample video:
https://github.com/react-component/tree/assets/8103060/78917bcd-1e21-48ce-907a-4cc2082ff8d7
Duration of re-renderings from the video for rc-tree and all of its descendants:
Re-rendering screenshots
Re-rendering no.1:

Re-rendering no.2:

Re-rendering no.3:

My questions are:
Thank you for your work and thank you in advance
The text was updated successfully, but these errors were encountered: