- PVSM.RU - https://www.pvsm.ru -

Уходит ли React от SPA?

В последнее время большинство громких новостей в экосистеме React связаны с Server Components, Server Actions и в целом с Server Side Rendering и Next.js.

И вот вопрос, который беспокоил меня лично — что будет с уже созданными за последние 10 лет Single Page Applications на React? Неужели пора о них забыть? Действительно ли команда разработчиков React теперь занимается развитием только лишь SSR, или всё же в мире SPA тоже происходят обновления и они тоже развиваются?

Я решил взглянуть на список изменений в React 19 [1] через призму применимости этих изменений к SPA. Вот что я отметил:

  • Появился хук useOptimistic [2]: год назад я писал об этом хуке пост в своём телеграм канале [3]. Этот хук позволяет реализовать в React подход Optimistic UI, когда мы отправляем запрос на сервер и сразу обновляем UI, не дожидаясь ответа от сервера, оптимистично предполагая, что ответ будет успешным. Сам этот подход — довольно старый (как и SPA), и призван он решать те проблемы, которые были ещё тогда, во времена jQuery. Поэтому, считаю, что появление этого хука можно смело записать в копилку обновлений, применимых к SPA.

  • Добавлена поддержка meta-тегов [4]: теперь в React-компоненте можно отрисовывать теги <meta>, которые автоматически будут всплывать в секцию <head> вашего документа. Раньше это было в Next.js, а теперь и в обычном SPA-реакте это тоже есть.

  • Поддержка title [5]: то же самое, что и предыдущий пункт: теперь <title> документа меняется прямо из React-компонентов. Чем не SPA-шная фича? :)

    Правда, если быть совсем точным, то <title> там не заменяется со старого на новый, а добавляется к уже существующему. Но мы об этом помолчим и поставим команде React четвёрку за старания))

  • Загрузка через preinit [6], preload [7], preconnect [8], prefetchDNS [9]: целый набор методов для предварительной загрузки (и выполнения) браузером ваших ресурсов. Метод preload, например, позволит заранее подгрузить аудио, шрифты, скрипты, стили и т.д., а preinit позволяет сразу обработать/выполнить загруженный контент. Потенциально это может сильно облегчить жизнь всем, в том числе и SPA.

Кажется, что SPA пока будут жить

Да, у Single Page Applications есть свои минусы: это и долгая загрузка ресурсов, и сложности с SEO, и нюансы с роутингом или историей браузера. Фреймворки вроде Next.js и были созданы отчасти для того, чтобы решить эти проблемы.

Но, судя по количеству применимых к SPA нововведений в React 19, о полноценном отказе от SPA говорить ещё очень рано.

Автор: nepshaaa

Источник [10]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/406310

Ссылки в тексте:

[1] список изменений в React 19: https://react.dev/blog/2024/12/05/react-19

[2] useOptimistic: https://react.dev/reference/react/useOptimistic

[3] пост в своём телеграм канале: https://t.me/nepshajs/26

[4] поддержка meta-тегов: https://react.dev/reference/react-dom/components/meta

[5] title: https://react.dev/reference/react-dom/components/title

[6] preinit: https://react.dev/reference/react-dom/preinit

[7] preload: https://react.dev/reference/react-dom/preload

[8] preconnect: https://react.dev/reference/react-dom/preconnect

[9] prefetchDNS: https://react.dev/reference/react-dom/prefetchDNS

[10] Источник: https://habr.com/ru/articles/870240/?utm_source=habrahabr&utm_medium=rss&utm_campaign=870240