Topics

Notas sobre Next.js 16 Cache Component

  • column

Hace unos seis meses, Next.js 16 se lanzó oficialmente el 21 de octubre de 2025.

El concepto de Cache Components fue introducido a partir de Next.js 16, permitiendo un control explícito del almacenamiento en caché.

Solo el lugar donde escribes la directiva use cache se almacena en caché, y también es posible el almacenamiento en caché por componente usando Suspense.

Dado que también habrá artículos publicados sobre esto, esta vez voy a recopilar mis notas sobre cómo usar "Cache Components" en Next.js 16.

Los 4 tipos de almacenamiento en caché en Next.js AppRouter

El almacenamiento en caché en Next.js AppRouter viene en 4 patrones.

  • Request Memoization: Se refiere a la deduplicación de solicitudes idénticas. Aunque el mismo fetch se llame desde diferentes componentes, solo se ejecuta una vez. Es una característica que Next.js realiza automáticamente.
  • Data Cache: controla la implementación del caché mediante la opción fetch.
  • Full Route Cache: caché por página que funciona con renderizado estático (SSG, ISR). Implementa un mecanismo que almacena en caché el payload RSC y el HTML en el servidor.
  • Router Cache: mecanismo que almacena en caché temporalmente solo el payload RSC en la memoria del cliente. Funciona al utilizar el componente de Next.js.

Nueva funcionalidad en Next.js 16: "use cache"

Qué se puede hacer con la nueva funcionalidad Cache Components.

  • Simplifica la configuración del caché usando use cache. Solo se almacena en caché el lugar donde escribes use cache, permitiendo un control explícito del caché.
  • Al envolver con se pueden separar componentes, permitiendo especificar el caché a nivel de componente.

En Next.js 15 anterior, fetch se almacenaba en caché de forma predeterminada, lo que dificultaba identificar dónde se cachea y dónde no, generando cachés inesperados.

Como se almacena en caché automáticamente de forma predeterminada, era necesario añadir fetch(URL, { cache: 'no-store' }) para invalidarlo.

Por el contrario, Next.js 16 cambió el enfoque: ahora especificas use cache cuando necesitas caché, resultando en un método claro y simple.

Anteriormente, la Data Cache de Next.js solo se podía aprovechar a través de fetch, pero ahora es posible aplicar el caché directamente a funciones asincrónicas que no utilizan fetch, como consultas de base de datos.

Método de implementación

Es necesario habilitar Cache Components en el archivo next.config.js.

Con esta configuración, la funcionalidad de Cache Components estará disponible.

import type { NextConfig } from "next";

const nextConfig: NextConfig = {
  cacheComponents: true,
};

export default nextConfig;

Agregue la directiva use cache al inicio del componente que desea almacenar en caché. Si desea almacenar en caché solo funciones específicas, escriba la directiva dentro de la función.

'use cache'

async function getPosts() {
  const res = await fetch('<https://api.example.com/posts>')
  return res.json()
}

export default async function PostList() {
  const posts = await getPosts()
  return (
    <ul>
      {posts.map(post => <li>{post.title}</li>)}
    </ul>
  )
}

¿Qué sucede si no agrego use cache a la función fetch?

A partir de Next.js 16, es necesario agregar use cache para almacenar en caché, pero ¿qué sucede cuando no se agrega ni use cache ni la opción cache?

Si está configurado con cacheComponents: true, generará un error. Para desabilitar intencionalmente el caché, no utilice fetch(url, { cache: 'no-store' }), sino simplemente envuélvalo con . (Si cacheComponents: false (predeterminado), puede utilizar no-store de la forma tradicional)

Caché a nivel de función

Anteriormente solo era posible especificar el caché a nivel de página, pero ahora, utilizando use cache y , es posible configurar el caché a nivel de componente y función.

La ventaja es que dentro de una misma página se puede combinar renderizado estático y dinámico, permitiendo la coexistencia de entrega estática rápida y contenido dinámico, lo que mejora drásticamente la velocidad de carga inicial y la UX. (técnica de renderizado llamada PPR)

Fuente: Documentación oficial de Next.js 16 en japonés

Suspense

El rol de es procesar componentes de forma aislada del resto de la página.

Al envolver componentes con , se pueden separar, así que si deseas cachear a nivel de componente, especifica la configuración dentro del componente envuelto.

Sobre renderizado

El método de renderizado se determina según la configuración de caché.

"¿Cómo quiero mostrar esta página o datos?" (frecuencia de actualización, etc.)

Decidir el método de renderizado (SSG / ISR / SSR / PPR / CSR)

Configurar el caché correspondiente

Este es el enfoque.

Hay varios patrones de métodos de renderizado, pero esta vez nos saltaremos los detalles.


Por ejemplo,

En el caso de una «página de enrutamiento dinámico que obtiene datos de microCMS y muestra artículos de blog»

El método de renderizado SSG o ISR es óptimo (ya que el contenido de los artículos no se actualiza con frecuencia)

El caché es óptimo → agrega use cache

Se puede implementar de esta manera.

Por cierto, si no estableces Cache Components en true en el archivo next.config.js, puedes seguir usando la opción cache de fetch de la manera tradicional.

Conclusión

Al considerar la configuración de caché, es importante pensar en «¿cómo quiero mostrar estos datos y esta página?» e implementar el rendimiento óptimo adaptado a cada página.

Una vez que decidas la respuesta, naturalmente también quedará claro si debes usar use cache.

Muchas personas tienden a entender por separado el caché, los métodos de renderizado y la obtención de datos, pero en realidad todo está conectado.

¡Es importante considerarlos como un flujo único, no como conceptos separados!

Autor de este artículo

Me dedico al desarrollo frontend con enfoque en el marcado, utilizando JavaScript, React y Next.js. ¡Me alegra mucho cuando los sitios en los que he trabajado se publican exitosamente! Mi hobby es tocar la guitarra. Me encantan los gatos y los boniatos🐱🍠

Hiraitch

Ingeniero de frontend / Incorporado en 2022

Ver artículos de este staff

Destacamos por nuestro equipo confiable y nuestra rápida capacidad de respuesta

En Liberogic, nuestro personal experimentado impulsa activamente los proyectos, lo que nos ha ganado una alta evaluación de nuestros clientes.
Nos aseguramos de asignar adecuadamente gerentes de proyecto y directores, manteniendo una ejecución fluida de todo el proyecto. Evitamos aumentos de costos innecesarios mediante asignación completa, distribuyendo recursos estratégicamente según las necesidades, y somos reconocidos por la rapidez en la comprensión de tareas, elaboración de presupuestos y entrega de cotizaciones.

* Tome en cuenta que nuestra empresa no participa activamente en labores de residencia tipo SES.

Puede utilizar prácticamente todas las herramientas principales de gestión de proyectos y chat como Slack, Teams, Redmine, Backlog, Asana, Jira, Notion, Google Workspace, Zoom, Webex, entre otras.

En proyectos grandes que utilizan SES u offshore, ¿tiene dudas o dificultades en cuanto a desafíos técnicos o enfoques?

Casos de Estudio