Проверяет понимание различий между классовыми и функциональными компонентами в React и знания о том, какие возможности остаются доступны только классам.
Долгое время классовые компоненты были единственным способом работать с состоянием и жизненным циклом в React. С появлением хуков в версии 16.8 ситуация изменилась: почти вся функциональность классов была перенесена в функциональные компоненты. Однако осталось одно важное исключение — Error Boundary.
componentDidCatch или getDerivedStateFromError. Хуков для этого до сих пор нет.useState, useReducer.useEffect, useLayoutEffect.useContext.useRef.useMemo, useCallback.class ErrorBoundary extends React.Component {
state = { hasError: false };
static getDerivedStateFromError(error) {
return { hasError: true };
}
componentDidCatch(error, info) {
console.error('Ошибка:', error, info);
}
render() {
if (this.state.hasError) {
return <h1>Что-то пошло не так</h1>;
}
return this.props.children;
}
}
Такой компонент оборачивает часть дерева и предотвращает падение всего приложения при ошибке в дочерних компонентах.
Итог: классы в React сегодня нужны практически только для Error Boundary. Всё остальное предпочтительно писать на функциональных компонентах с хуками — это короче, читабельнее и лучше переиспользуется.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
React
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию