я просто пишу что хуки нужны для функциональных компонент, а там дело каждого юзать класс или функции
Я использую функциональные компоненты только для отрисовки самых простых элементов интерфейса. В этих компонентах нет никакой своей логики, они чисты и возвращают только jsx
Классовые компоненты это компоненты более высокого уровня, в них как правило задаются хэндлеры для обработки событий, эти хэндлеры затем прокидываются вниз по дереву компонентов. Так же классовые компоненты могут иметь свое локальное состояние, это удобно, если данные используются в пределах только этого компонентах и в его дочерних компонентах