Сначала добавляют в реакт функциональные компоненты, которые вроде как лишены бизнес логики, чистые как слеза младенца и легко тестируемы, и вообще сказка просто.
А теперь вдруг функция вызывает какие-то неведомые эффекты, читает из чертегознает где хранящегося стейта, создает неопределенное количество замыканий… И все это на каждый вызов рендера.
Думаю форк случится на моменте выпуска react 17, где они уберут componentWillMount и сделают shouldComponentUpdate статичным методом. Фактически разделят экосистему реакта на до и после 17 версии.
Был хороший context api который прекрасно решал свои задачи. Абрамов решил «улучшить» частный случай использования, сломав все остальные сценарии: использование вне рендера, простое использование нескольких контекстов одновременно. Теперь, чтобы всё «починить» нам предлагают использовать bind в рендере (что тысячу раз уже заклеймили антипаттерном) и оборачивать компоненты в компоненты, только ради того чтобы решить задачу которая раньше не требовала решения вообще.
Отличная реализация .join(",").
А теперь вдруг функция вызывает какие-то неведомые эффекты, читает из чертегознает где хранящегося стейта, создает неопределенное количество замыканий… И все это на каждый вызов рендера.