Вопрос проверяет понимание оптимизации производительности React-компонентов через вынос функций-обработчиков за пределы компонента для предотвращения лишних ререндеров.
В React при каждом рендере компонента все функции, объявленные внутри него, создаются заново. Это может привести к лишним ререндерам дочерних компонентов, если они получают эти функции как пропсы. Вынос функции за пределы компонента позволяет сохранить ссылку на одну и ту же функцию между рендерами, что оптимизирует производительность.
// Неоптимизированный вариант: функция создается каждый раз
function MyComponent() {
const handleClick = () => {
console.log('Clicked');
};
return <button onClick={handleClick}>Click</button>;
}
// Оптимизированный вариант: функция вынесена за пределы
const handleClick = () => {
console.log('Clicked');
};
function MyComponent() {
return <button onClick={handleClick}>Click</button>;
}Если функция зависит от состояния или пропсов, вынос приведет к потере доступа к актуальным значениям. В таких случаях используйте useCallback с правильными зависимостями.
Вынос функций-обработчиков за пределы компонента — простой и эффективный способ оптимизации, который стоит применять для статических обработчиков, не зависящих от внутреннего состояния компонента.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию