Ответ
Функциональный UI-компонент — это компонент, реализованный как чистая функция, которая получает данные через props и возвращает JSX. Он не имеет внутреннего состояния (stateless) и побочных эффектов на этапе рендеринга.
Пример функционального компонента кнопки на React:
// Stateless Functional Component
const Button = ({ onClick, children, disabled = false, type = 'button' }) => {
return (
<button
type={type}
onClick={onClick}
disabled={disabled}
className={`btn ${disabled ? 'btn--disabled' : 'btn--primary'}`}
>
{children}
</button>
);
};
// Использование
const App = () => {
const handleClick = () => console.log('Клик!');
return (
<Button onClick={handleClick} disabled={false}>
Отправить
</Button>
);
};
Ключевые характеристики:
- Декларативность: Описывает что отрисовать, а не как.
- Предсказуемость: При одинаковых
propsвсегда возвращает одинаковый результат. - Простота тестирования: Легко тестировать, передавая различные пропсы.
- Отсутствие побочных эффектов: Не изменяет внешнее состояние или DOM напрямую в теле функции.
Когда использовать: Для презентационных компонентов, которые только отображают данные и обрабатывают события.