В последнее время большинство громких новостей в экосистеме 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-компоненте можно отрисовывать теги <meta>, которые автоматически будут всплывать в секцию <head> вашего документа. Раньше это было в Next.js, а теперь и в обычном SPA-реакте это тоже есть.
-
Поддержка title: то же самое, что и предыдущий пункт: теперь <title> документа меняется прямо из React-компонентов. Чем не SPA-шная фича? 🙂
Правда, если быть совсем точным, то <title> там не заменяется со старого на новый, а добавляется к уже существующему. Но мы об этом помолчим и поставим команде React четвёрку за старания))
-
Загрузка через preinit, preload, preconnect, prefetchDNS: целый набор методов для предварительной загрузки (и выполнения) браузером ваших ресурсов. Метод preload, например, позволит заранее подгрузить аудио, шрифты, скрипты, стили и т.д., а preinit позволяет сразу обработать/выполнить загруженный контент. Потенциально это может сильно облегчить жизнь всем, в том числе и SPA.
Кажется, что SPA пока будут жить
Да, у Single Page Applications есть свои минусы: это и долгая загрузка ресурсов, и сложности с SEO, и нюансы с роутингом или историей браузера. Фреймворки вроде Next.js и были созданы отчасти для того, чтобы решить эти проблемы.
Но, судя по количеству применимых к SPA нововведений в React 19, о полноценном отказе от SPA говорить ещё очень рано.
ссылка на оригинал статьи https://habr.com/ru/articles/870240/
Добавить комментарий