> В чем разница функциональных и классовых компонентов в React? (React)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Альфа-банк, ООО Премиум ИТ Солюшен, VK, Aston, Домклик, Swetec, EPAM, Сбер, Исходный Код, SmartWay
Стек: React
> Пример ответа
Основное различие между функциональными и классовыми компонентами в React - это способ управления состоянием и жизненным циклом. Классовые компоненты используют this.state и методы жизненного цикла (componentDidMount, componentDidUpdate, componentWillUnmount), а также требуют привязки this к методам. Функциональные компоненты - это чистые функции, которые до React 16.8 были stateless (без состояния), но с появлением хуков (useState, useEffect) они получили полный доступ к состоянию и побочным эффектам.
Ключевые отличия:
-
Синтаксис: классовые - ES6 классы с
render(), функциональные - обычные функции, возвращающие JSX. -
Состояние: в классах -
this.state+this.setState(), в функциях - хукuseState. -
Жизненный цикл: в классах - методы (
componentDidMountи т.д.), в функциях - хукuseEffect(объединяет несколько методов). -
Производительность: функциональные компоненты легче, меньше кода, и компилятор лучше их оптимизирует (например, tree-shaking).
-
Сложность: классы требуют понимания
this, бойлерплейта (конструктор, bind), функциональные - проще и предсказуемее.
Современный React рекомендует функциональные компоненты с хуками как основной подход, так как они более лаконичны, легче тестируются и избегают проблем с мутацией состояния. Классовые компоненты остаются для поддержки legacy-кода.
> Похожие задачи по frontend
Что делает хук useEffect и как работает функция очистки в React?
Что происходит с индексами элементов при удалении первого элемента из массива
В чем разница между вызовом компонента как функции и вызовом через JSX в React
Будет ли работать React.memo если пропсы передаются в виде объекта, который меняется по ссылке
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью