Capítulo 242 de 456

serverComponentsHmrCache

Core Idea

Cacheia respostas fetch em Server Components entre refreshes de Hot Module Replacement em dev local, acelerando o desenvolvimento e reduzindo custos de chamadas de API cobradas por uso.

Key Concepts

  • experimental.serverComponentsHmrCache: true por padrão. Se false, desabilita o cache.
  • Por padrão, o cache HMR se aplica a TODOS os fetch, incluindo os com cache: 'no-store' — ou seja, requisições "sem cache" não mostram dados frescos entre refreshes de HMR. O cache é limpo em navegação ou reload completo da página.

Code Examples

import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
  experimental: { serverComponentsHmrCache: false }, // default: true
}
export default nextConfig
  • O que demonstra: desabilitar o cache para ver dados sempre frescos durante HMR, mesmo em fetches no-store.

Key Takeaways

  1. Mesmo fetches marcados cache: 'no-store' são afetados por este cache HMR, um comportamento não intuitivo digno de nota.
  2. Só afeta dev local, nunca produção.

Connects To

  • logging.fetches.hmrRefreshes (ch223): para observar hits/misses desse cache no console.