Capítulo 230 de 456

partialPrefetching

Core Idea

Habilita Partial Prefetching em nível de app: em vez de pré-carregar cada rota completa por link visível, o Next.js prefetcha um App Shell reutilizável por rota, resolvendo dados específicos de URL só depois da navegação.

Key Concepts

  • partialPrefetching (config, requer cacheComponents: true): true habilita globalmente. Sem cacheComponents, next dev/next build falham na validação do config.
  • App Shell: output renderizado que não depende da URL do link. Conteúdo dependente de params/searchParams resolve após navegação. Shells são cacheados no client, então links pra mesma rota reaproveitam um único prefetch.
  • Rotas que leem cookies()/headers() geram um App Shell com dados de sessão; o framework detecta isso automaticamente e cacheia o shell por sessão no client.
  • <Link prefetch={true}> (per-link prefetching): pede mais que o App Shell, resolvendo params, searchParams, URL completa e conteúdo cacheado por trás.
  • Override por segmento: um segmento que exporta prefetch explícito (route segment config) sobrepõe o default do app para aquela rota.

Code Examples

import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
  cacheComponents: true,
  partialPrefetching: true,
}
export default nextConfig
  • O que demonstra: ativação obrigatoriamente acoplada a cacheComponents.

Reference Tables

ValorDescrição
trueHabilita Partial Prefetching em todo o app
falsePadrão. Sem mudança no comportamento de prefetch

Version History

VersãoMudança
16.3.0partialPrefetching introduzido. Requer cacheComponents.

Key Takeaways

  1. Sem cacheComponents habilitado, a config falha validação, não é opcional.
  2. Usar <Link prefetch={true}> numa rota sem Partial Prefetching gera erro de console em dev sugerindo habilitar globalmente ou usar prefetch = 'partial' no segmento.

Connects To

  • cacheComponents: pré-requisito obrigatório desta feature.
  • prefetch (route segment config): permite override por rota.