новостей не знаю, но могу поделиться личным мнением) Классы хороши для начала. чтобы понять принцип работы компонентов, стейта, лайфсайкла и т.д.
Но когда у тебя в голове уже сформировано это понимание, есть резон перейти на функциональные с хуками. Причины?
1. Более чистый код
Не нужно писать конструкторы и методы лайфсайклов.
вместо
constructor(props) {
super(props)
this.state = {
...
}
}
достаточно написать
const [state, setState] = useState({})
Также, не нужно делать бинд методов в конструкторе (чтобы не было потери this при обновлении стейта внутри метода).
Да и функциональный стиль как-то ближе, но тут вкусовщина.
2. Все лайфсайкл методы умещаются в одной функции useEffect()
Это удобно, т.к. тебе не придётся вручную проверять разницу пропсов в методе didUpdate, ты можешь просто закинуть нужный пропс в массив зависимостей. этот useEffect сработает, при первичном рендере и далее только если данный пропс поменяется. Это особенно актуально при использовании Redux, где стейт приходит в пропсы. На изменения разных пропсов нужны отдельные хендлеры? не проблема, ты можешь сделать сразу несколько useEffect и поставить на каждый разные зависимости + прописать разные хендлеры.
3. Возможность писать кастомные хуки + неплохая поддержка со стороны библиотек. Взять тот же react-router с его useHistory()