Ваш родительский компонент выполняет повторную визуализацию, поскольку его состояние изменяется.
Когда компонент выполняет повторную визуализацию, все его дочерние элементы повторно визуализируются. Это означает, что запускается функция рендеринга, и результат добавляется в виртуальный DOM.
Этот результат затем сравнивается с существующим DOM. Это не значит, что фактические DOM изменяются для дочерних компонентов, просто они переоцениваются, потому что DOM может измениться.
Если окажется, что дочерний элемент нужно изменить, затем этот элемент в реальном DOM будет перерисован. Если дочерний элемент не нуждается в изменении, этот элемент в DOM остается незатронутым.
Обычно это нормально и имеет минимальное или нулевое влияние на производительность для небольших компонентов, поэтому обычно вы не делаете об этом не нужно беспокоиться.
Если у вас есть глубокие иерархии компонентов или компоненты со сложными функциями рендеринга, которые выполняют вычислительно дорогостоящие операции, рассмотрите возможность использования React.memo
, если вы чувствуете, что цикл рендеринга вызывает попадание по производительности.