-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Inner blocks: don't re-render list when controlled blocks change #58575
Conversation
Size Change: +1 B (0%) Total Size: 1.7 MB
ℹ️ View Unchanged
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the Core SVNIf you're a Core Committer, use this list when committing to
GitHub Merge commitsIf you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.
To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
What?
Currently for "controlled inner blocks", a change in block re-renders the inner blocks component and subsequently the list of blocks and async providers. We can avoid this by memo-ing the block list component, the props of which are already designed to be stable.
In this graph, we can stop re-rendering at "UncontrolledInnerBlocks".
Why?
First run -12.5% type in the site editor
Second run -11.7%
Third run -7.5%
Fourth run -11.6%
How?
Testing Instructions
Testing Instructions for Keyboard
Screenshots or screencast