Вопрос проверяет понимание принципов декомпозиции и переиспользования логики в React-компонентах через кастомные хуки.
Кастомные хуки — это способ извлечения повторяющейся логики из компонентов. Они позволяют отделить состояние и побочные эффекты от представления, следуя принципу разделения ответственности. Основной сигнал к созданию хука — дублирование кода: если вы видите одинаковую логику в двух и более компонентах, это кандидат на вынесение.
import { useState, useEffect } from 'react';
function useWindowWidth() {
const [width, setWidth] = useState(window.innerWidth);
useEffect(() => {
const handleResize = () => setWidth(window.innerWidth);
window.addEventListener('resize', handleResize);
return () => window.removeEventListener('resize', handleResize);
}, []);
return width;
}
// Использование в компоненте
function MyComponent() {
const width = useWindowWidth();
return <div>Window width: {width}</div>;
}Кастомные хуки стоит применять, когда нужно переиспользовать логику с состоянием или эффектами между компонентами. Они делают код чище, упрощают тестирование и поддержку, особенно в крупных проектах.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию