TanStack официально прекратил использование React Server Components (RSC) в своих библиотеках, назвав решающими факторами возросшую сложность, снижение гибкости, незначительный прирост производительности и замедление темпов разработки. Это решение имеет значение для всех, кто создает инструменты на базе React, поскольку библиотеки TanStack широко используются и часто задают практические стандарты в экосистеме.

Почему RSC казались привлекательными

React Server Components появились как способ перенести тяжелые задачи по выборке данных и рендерингу на сервер, обещая уменьшение размера клиентских бандлов и ускорение загрузки страниц. Команда TanStack опробовала этот подход, надеясь улучшить пользовательский опыт в своих библиотеках data-grid и query.

Что заставило их отказаться

  • Сложность — отладка кода RSC требовала отдельной ментальной модели. Команда тратила на поиск проблем серверного рендеринга больше времени, чем могла себе позволить.
  • Гибкость — многие сторонние библиотеки предполагают чисто клиентскую среду. Выполнение RSC только на стороне сервера затрудняло интеграцию без переписывания или использования шимов для этих зависимостей.
  • Производительность — измеренные улучшения скорости были незначительными. Накладные расходы на координацию границ между сервером и клиентом перевешивали маржинальный выигрыш в большинстве реальных сценариев.
  • Скорость разработки — более простые паттерны, ориентированные только на клиент, позволяли команде быстрее выпускать обновления. С RSC каждое изменение требовало проверки как на сервере, так и на клиенте, что замедляло цикл релизов.

Более широкие последствия

Если такой ведущий набор инструментов, как TanStack, отступает от RSC, другие проекты могут пересмотреть отношение к этому хайпу. Это решение подчеркивает наличие компромисса: передовые функции могут приносить скрытые издержки, которые вредят продуктивности разработчиков и долгосрочной поддержке. Компании, приоритетом которых являются быстрая итерация и широкая совместимость библиотек, могут последовать этому примеру.

Контраргумент

Некоторые разработчики по-прежнему видят ценность в RSC для специфических сценариев использования — особенно там, где серверная обработка данных может значительно уменьшить размер полезной нагрузки (payload). Подход может эволюционировать, и будущие инструменты смогут устранить болевые точки, выявленные TanStack. На данный момент мнения по-прежнему разделяются.

На что обратить внимание в будущем

  • Обновления инструментов — улучшения в отладке и поддержке интеграции могут снизить порог сложности.
  • Обратная связь от сообщества — по мере того как команды будут делиться данными о производительности, соотношение затрат и выгод может измениться.
  • Альтернативные паттерны — методы инкрементального серверного рендеринга или гибридные подходы могут стать компромиссным вариантом.

Итог: Отказ TanStack от React Server Components напоминает нам о том, что новое не всегда означает лучшее; разработчикам следует взвешивать реальные затраты на свой рабочий процесс и обещанные преимущества, прежде чем внедрять новые паттерны.

Source: https://tanstack.com/blog/we-stopped-using-rsc-on-tanstack-com