🎭 Лебедь, рак и щука: три философии React
Осень в React-экосистеме как никогда напоминает басню Крылова. Next.js по-прежнему тянет к серверу, но теперь без экспериментальных флагов для новой модели кеширования, Турбопака, PPR и кучи других фичей, Remix 3 уходит к нативной веб-платформе, оставляя React позади, а TanStack Start цепляется за клиент с изоморфными лоадерами. Каждый считает, что именно его путь — единственно верный.
🐋 Next.js 16 продолжает гнуть server-first линию
Подробно тут не буду останавливаться, так как у меня есть такой пост, на сбор которого я потратил практически целый год 🥲
🦞 Remix 3: возвращение назад к веб-платформе
Представленный на Jam 2025, Remix решительно отказывается от React runtime в пользу Preact-подобного лёгкого ядра и нативных Web APIs.
Принципы:
* Web-First: события — нативные браузерные (через свою библиотеку), никакого SyntheticEvent. Все триггеры через универсальный on-проп.
* Imperative UI: вместо декларации view = f(state) — вызов this.update() после мутаций.
* Progressive Enhancement: формы работают без JS, фолбэки на нативные API.
* Архитектура островов через механизм, напоминающий работу по Iframe.
* Модульный релиз: пока фреймворк состоит из отдельных пакетов, единый пакет remix выйдет в 2026.
Remix 3 — революция, бросающая вызов идее React-фреймворка.
🦢 TanStack Start: клиент в приоритете
TanStack Start противопоставляет себя остальным как client-first решение с мощными серверными возможностями.
* Первая навигация: SSR + SEO. Дальнейшая навигация исключительно client-side с мгновенной подгрузкой данных из кеша.
* Изоморфные лоадеры: один и тот же код для SSR и навигации на клиенте, проверяющий кеш TanStack Query.
* Server Functions через createServerFn без API-слоя, type-safe end-to-end.
* Selective SSR: настраивается на каждый роут - full ssr, data-only (загружает только новые данные в кеш) или spa like
Никаких компромиссов в UX: useState, useEffect, useContext работают как в классическом SPA, не нужно задумываться, что это за компонент и будет ли в нем работать хук. React Server Components появятся опционально в v1.x, но не займут место client-first модели.
🔗 Ссылки для погружения:
* TanStack Start Introduction — введение в TanStack Start
* TanStack Start Deep Dive — глубокий анализ TanStack Start
* Thoughts on Remix 3 — обзор новой философии Remix 3
Post #128
333