Проверяет умение использовать React DevTools Profiler для поиска лишних ререндеров и понимание цветовой подсветки компонентов по времени рендера.
React DevTools Profiler — это встроенная вкладка в расширении React DevTools, которая позволяет записывать и анализировать производительность рендера React-приложения. Она показывает, какие компоненты рендерились, сколько времени занял каждый рендер и почему компонент обновился. Это ключевой инструмент для оптимизации UI, особенно когда приложение начинает тормозить при взаимодействии пользователя.
В flame chart цвет компонента отражает относительное время его рендера в рамках текущей записи:
Важно: цвет относительный, а не абсолютный. Если всё приложение рендерится за 1 мс, самый медленный компонент всё равно будет красным. Поэтому смотрите и на абсолютные значения времени.
function Parent() {
const [count, setCount] = useState(0);
return (
<div>
<button onClick={() => setCount(count + 1)}>+</button>
<Child /> {/* рендерится при каждом клике, хотя props не меняются */}
</div>
);
}
const Child = React.memo(function Child() {
return <p>Static content</p>;
});
В Profiler при клике вы увидите, что Child рендерится вместе с Parent. Обернув Child в React.memo, вы увидите, что он больше не участвует в рендере — цвет станет серым.
Итог: Profiler стоит применять при оптимизации производительности React-приложения, чтобы находить дорогие и лишние ререндеры и точечно исправлять их через memo, useMemo, useCallback или правильное разделение состояния.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию