TGViewer
🦜 on the web 🦜 on the web @parrotontheweb · 2.07K subscribers
Post #554 2.84K
Preview Next.js 16.3

TL;DR
Главная идея: server-driven приложение теперь может ощущаться как SPA, если на каждом async-await явно выбрать Stream / Cache / Block. Prefetching стал адекватным — один shell на роут вместо запроса на каждую ссылку.

Ден Абрамов присоединился к команде Next.js и Vercel. (на парт-тайме)

Решил две новости в одну совместить.

Ден с своей стороны будет не замыленным взглядом помогать закрыть пробелы в распространенных кейсах использования от маленьких блогов до больших проектов.

Как он говорит: —
the team has been working hard at fixing many of those gaps. i hope to provide an additional “casual Next.js user“ voice to help prioritize the ones that bite people the most.


Теперь про обновление.

16.3 приносит нам Мгновенную навигацию.

Проблематика: Навигация ощущается медленной, когда запросы на стороне сервера ожидаются для отрисовки страницы.
Для сохранения серверной модели и создание SPA-ощущений завозят следующие инструменты.

Cache Components
Всё работает за флагом cacheComponents: true в next.config.ts. В будущем мажоре станет дефолтом. Курс на «dynamic by default, без скрытого кеширования».

Три стратегии для async-операций
Когда роут await-ит данные на сервере, теперь надо явно выбрать поведение:

* Stream через <Suspense> — юзер мгновенно видит loading-стейт, контент стримится.
* Cache через 'use cache' — мгновенно показывается закешированная UI.
* Block через export const instant = false на странице/лейауте — осознанно говорим «эта навигация ждёт сервер» (например, для блог-постов, где не хочется shell-а).

Stream/Cache → навигация мгновенная. Block → явный opt-out. Медленные навигации без Block теперь подсвечиваются как ошибки в dev через панель Instant Insights.

Partial Prefetching (отдельный флаг partialPrefetching: true)
Раньше Next делал prefetch-запрос на каждую ссылку во вьюпорте — в Network вкладке был ад из запросов. Теперь:

* Prefetch-ится один переиспользуемый shell на роут, не на ссылку. 20 ссылок на /chat/[id] → один запрос на shell этого роута.
* Shell-ы кешируются на клиенте на сессию. Концептуально как code-splitting по роутам в SPA.
* Это же основа для будущей offline-навигации.

Если нужно prefetch-ить больше чем shell — <Link prefetch={true}> плюс 'use cache' на нужных кусках. По умолчанию ограничено build-time контентом; export const prefetch = 'allow-runtime' расширяет до request-time кеша (ценой нагрузки на сервер).

Тулинг

* Instant Insights — панель в devtools, помечает не-instant роуты ошибками в dev.
* Navigation Inspector — ставит навигацию на паузу на этапе shell, видно что реально prefetch-ится, что грузится после.
* instant() helper для Playwright (@next/playwright) — ассерт, что после клика что-то видно мгновенно, без ожидания network.
* Есть skill для агента для миграции существующих проектов на Cache Components.
nextjs.org Next.js 16.3: Instant Navigations A new suite of tools that brings the responsiveness of a single-page app to the server-centric model of Next.js.
  • 👍 9
  • ❤ 3
  • 👎 1
More from @parrotontheweb
  1. Oct 6, 2026я никогда не любил верстать, но это... Мы с каждым днем, в вебе, теряем ориентиры. Какие ш…
  2. Oct 2, 2026Сайт: появляется в интернете. Веб-краулер: ну здравствуй.
  3. Sep 10, 2026Channel photo updated
  4. Sep 7, 2026Планирую посетить HolyJS 23–24 октября в Санкт-Петербурге. В этот раз особенно интересно п…
  5. Aug 6, 2026Post #556
  6. Jul 16, 2026HYPERBLAM — это попытка переосмыслить создание музыки в браузере. Его главный тезис сформу…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →