Уходит ли React от SPA?
В последнее время большинство громких новостей в экосистеме React связаны с Server Components, Server Actions и в целом с Server Side Rendering и Next.js.
И вот вопрос, который беспокоил меня лично — что будет с уже созданными за последние 10 лет Single Page Applications на React? Неужели пора о них забыть? Действительно ли команда разработчиков React теперь занимается развитием только лишь SSR, или всё же в мире SPA тоже происходят обновления и они тоже развиваются?
Я решил взглянуть на список изменений в React 19 через призму применимости этих изменений к SPA. Вот что я отметил:
Появился хук useOptimistic: год назад я писал об этом хуке пост в своём телеграм канале. Этот хук позволяет реализовать в React подход Optimistic UI, когда мы отправляем запрос на сервер и сразу обновляем UI, не дожидаясь ответа от сервера, оптимистично предполагая, что ответ будет успешным. Сам этот подход — довольно старый (как и SPA), и призван он решать те проблемы, которые были ещё тогда, во времена jQuery. Поэтому, считаю, что появление этого хука можно смело записать в копилку обновлений, применимых к SPA.
Добавлена поддержка meta-тегов: теперь в React-компоненте можно отрисовывать теги , которые автоматически будут всплывать в секцию
вашего документа. Раньше это было в Next.js, а теперь и в обычном SPA-реакте это тоже есть.Поддержка title: то же самое, что и предыдущий пункт: теперь
документа меняется прямо из React-компонентов. Чем не SPA-шная фича? :) Правда, если быть совсем точным, то
там не заменяется со старого на новый, а добавляется к уже существующему. Но мы об этом помолчим и поставим команде React четвёрку за старания)) Загрузка через preinit, preload, preconnect, prefetchDNS: целый набор методов для предварительной загрузки (и выполнения) браузером ваших ресурсов. Метод preload, например, позволит заранее подгрузить аудио, шрифты, скрипты, стили и т.д., а preinit позволяет сразу обработать/выполнить загруженный контент. Потенциально это может сильно облегчить жизнь всем, в том числе и SPA.
Кажется, что SPA пока будут жить
Да, у Single Page Applications есть свои минусы: это и долгая загрузка ресурсов, и сложности с SEO, и нюансы с роутингом или историей браузера. Фреймворки вроде Next.js и были созданы отчасти для того, чтобы решить эти проблемы.
Но, судя по количеству применимых к SPA нововведений в React 19, о полноценном отказе от SPA говорить ещё очень рано.