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