Fix slow rerendering of large tables (reopened) #6422
+100
−40
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi! I have lags with rerendering of large tables with memoized rows:
Eventloop lags for 200ms when I click on the button in this simple example. But all rows are memoized.
I noticed then
TableContext
have a new value every render. It leads to rerender ofTable.Tr
andTable.Td
:Memoizing of the context and
![Screenshot 2024-01-30 at 19 48 48](https://private-user-images.githubusercontent.com/8217599/300949633-2c62e5cb-f5bf-494d-b3ca-3236c973629b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NTQ5NTMsIm5iZiI6MTczOTU1NDY1MywicGF0aCI6Ii84MjE3NTk5LzMwMDk0OTYzMy0yYzYyZTVjYi1mNWJmLTQ5NGQtYjNjYS0zMjM2Yzk3MzYyOWIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTRUMTczNzMzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjE1NWJiMDM1MzExNDIzNmFmOTFlYTZiMTkyMjNhOWY1NTJlZWQ2OTgzNTJjYjU3MDYyYzUxYzljODNiNTA2MCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.m5jvuWJPwjVKRR4U25V5A4s0toe6jVcbeXw1iitdUH8)
useStyle
can improve performance:I can suggest my decision of this problem in the pull request. Maybe you have another ideas.