На мой взгляд функциональные компоненты, декларативные по отношению к классовым. Например:
1)Тебе не приходтся писать сеттеры/геттеры для каждого класса, для этого у тебя есть хуки(useState.)
2) Так же не стоит забывать про жизненные циклы компонентов. В классовых их 100500, и каждый отвечает за что то, в то время как в функц. он один это useEffect.
Это лишь некоторые примеры, но по ним понятно что, когда пишешь функц. пишешь меньше кода, что влияет на производительность кода.