- PVSM.RU - https://www.pvsm.ru -
В последнее время большинство громких новостей в экосистеме 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
Нажмите здесь для печати.