15.05.2025, Ссылка на анонс
Команда React Router анонсировала поддержку React Server Components. Подход, который является наиболее убедительным, выглядит следующим образом: React Router использует loader
для понимания того, какой компонент необходимо отобразить на основе данных. Такой подход обеспечивает уменьшение клиентского кода, т.к. на клиент попадает только нужный компонент со своей логикой. Использование RSC внутри loader
’ов позволяет получить преимущества серверных компонентов – не нужно полностью перерабатывать компоненты в остальных местах.
React Router, как и большинство крупных современных инструментов, использует жесткие именования компонентов для понимания того, какой код является серверным, а какой – клиентским. Для обработки серверных компонентов роутер будет обращать внимание на компонент с названием ServerComponent
и такой компонент будет бандлиться отдельно от клиентских компонентов, за что будут отвечать сами бандлеры. Серверные компоненты для роутинга смогут также определять лоадеры и экшены, как и клиентские компоненты. Ну и про серверные функции1 не забыли, они тоже будут работать. Интересной фичей будут миддлвары – их можно будет очень легко писать внутри роутов.
Проблемы кэширования и батчинга не обойдут стороной RSC, и автор предлагает обратить внимание на DataLoader от команды GraphQL, который позволяет уменьшить количество одинаковых запросов.