Komponentów klasowych nie powinno się używać między innymi ze względu na Reactowe hooki, których można używać tylko w komponentach funkcyjnych. Dzięki hookom kod staje się krótszy i czytelniejszy. Inicjalizacja stanu i jego zmiana dzięki useState jest czytelniejsze i krótsza niż przy klasowym obiekcie state i wbudowanej metody setState. Kolejny świetny hook - useEffect zastępuje nam stare właściwości componentWillUpdate, componentWillUnMount i componentDidMount. Hooków jest wiele, useLayoutEffect, useContext, useMemo, useReducer, useCallback etc...
Samo stworzenie komponentu klasowego to więcej pisania kodu niż przy tworzeniu komponentu funkcyjnego. Dodatkowo dzięki komponentom funkcyjnym nie musi się martwić o this.
Myślę, że obecnie pisanie aplikacji w React przy użyciu komponentów klasowych możemy porównać do pisania aplikacji webowych w czystych językach programowania - od tego się odchodzi, służą do tego frameworki.