Ответ
Кастомные хуки позволяют выносить логику из компонентов для повторного использования. Например, хук для управления формой:
import { useState } from 'react';
function useForm(initialValues) {
const [values, setValues] = useState(initialValues);
const handleChange = (e) => {
const { name, value } = e.target;
setValues({
...values,
[name]: value
});
};
return {
values,
handleChange,
setValues
};
}
// Использование в компоненте
function MyForm() {
const { values, handleChange } = useForm({ email: '', password: '' });
return (
<form>
<input
name="email"
value={values.email}
onChange={handleChange}
/>
<input
name="password"
type="password"
value={values.password}
onChange={handleChange}
/>
</form>
);
}
Ключевые моменты:
- Имя хука должно начинаться с
use
- Может использовать другие хуки внутри
- Инкапсулирует логику для переиспользования