Веб-приложения на React часто страдают от незаметной, но дорогостоящей проблемы: избыточных повторных отрисовок компонентов. В небольших проектах это остаётся незамеченным, но когда компоненты начинают обрабатывать сложную логику или данные, даже один лишний ререндер может увеличить время отклика интерфейса на 300-500 мс.
Почему компоненты рендерятся чаще, чем нужно
React по умолчанию ререндерит компонент при любом изменении пропсов или состояния. Для простых случаев это работает идеально, но в иерархии из десятков компонентов появляются скрытые зависимости:
...