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
