Загрузка…
Загрузка…
Хуки не удаляют render props и HOC, но для большинства задач заменяют их как предпочтительный способ шаринга логики.
// HOC
withAuth(ProfilePage);
// render props
<DataProvider>{(data) => <Chart data={data} />}</DataProvider>Минусы: wrapper hell, коллизии props, сложнее типы и DevTools-дерево.
function useAuth() {
const ctx = useContext(AuthContext);
if (!ctx) throw new Error('AuthProvider required');
return ctx;
}
function ProfilePage() {
const { user } = useAuth();
return <div>{user.name}</div>;
}Логика переиспользуется без лишних узлов в дереве.
Legacy-библиотеки, сложные slot-паттерны, случаи где API компонента удобнее «детьми-функцией». React Documentation прямо рекомендует hooks для новой логики.
«Hooks — основной инструмент переиспользования; HOC/render props — валидны, но чаще legacy или нишевые API». Умение читать старый код всё ещё важно. Приведите пример миграции HOC → hook — сильный практический штрих.
Стоит уметь объяснить тему на примере из проекта: какой API выберете, какие риски и как отладите. На собеседовании ценят структуру ответа и связи с соседними темами React (рендер, props, состояние, эффекты).
