veilletech.fr
11 oct. Feed du jour
#02 FRONT Article

Next.js 16.4 : Cache Components, défaut en version 17

Le cache n'est plus un comportement qu'on subit : c'est une ligne qu'on écrit.

Next.js 16.4 recommande Cache Components pour toute application : create-next-app l'active par défaut, et ce sera le défaut de tous en Next.js 17. La version ajoute ensureStatic, qui fait échouer le build si une route cesse d'être statique, et les fonctions navigation et prefetch pour différer un contenu coûteux. Un projet existant n'est pas modifié : la migration reste à faire, avec next upgrade --agent si on le souhaite.

3 min de lectureintermédiairevidéo 1:16
Partager
Sommaire6 sections
  1. Ce qui se passe
  2. Ce que c'est
  3. Ce que 16.4 ajoute
  4. Côté outillage
  5. Comment s'y prendre
  6. À retenir

Ce qui se passe

Next.js 16.4, publié le 6 octobre 2026, fait de Cache Components le choix recommandé pour toute application. Les projets créés avec create-next-app l'ont activé par défaut dès cette version, et le billet annonce que ce sera le défaut de tous les projets en Next.js 17.

Un point à ne pas déformer : un projet existant n'est pas touché. Un récapitulatif de la presse allemande résume la nouveauté par « activés par défaut » ; c'est exact pour les nouveaux projets seulement.

Ce que c'est

L'App Router mettait en cache de façon implicite. Cache Components le remplace par un cache déclaré : on annote un composant avec 'use cache', comme on poserait un Cache-Control sur une réponse HTTP, mais au niveau du composant. Le résultat peut être gardé dans le navigateur pendant les navigations client et, au choix, sur le serveur. Une même réponse mêle ainsi du contenu prérendu et du contenu rendu à la requête : un article statique avec l'avatar de l'utilisateur courant, par exemple.

Ce que 16.4 ajoute

ensureStatic garantit qu'une route reste statique. Le build échoue si un composant dynamique s'y glisse, ce qui protège les boutiques, pages marketing et blogs d'un surcoût discret.

TypeScript
export const ensureStatic = 'navigation';

Les trois valeurs : 'navigation' (aucune navigation vers la route ne rend à la requête), 'prefetch' (un lien préchargé n'obtient que du contenu statique) et 'shell' (seul du statique est récupéré quand la route est découverte). On peut aussi le poser dans un layout, jusqu'au layout racine.

navigation() et prefetch() retirent une partie coûteuse d'un préchargement. Exemple du billet : une messagerie dont chaque lien précharge le fil entier. Avec await navigation() dans le composant du fil, seul le premier message est préparé ; le reste attend la vraie navigation.

Côté outillage

Comment s'y prendre

  1. Nouveau projet : rien à faire, Cache Components est actif.
  2. Projet existant : créer une branche, lancer next upgrade --agent, lire le guide de mise en cache. L'activation passe par deux options de next.config, détaillées dans le billet.
  3. Pages purement statiques : poser ensureStatic pour que le build signale la régression.

Source : Next.js 16.4, Next.js, 6 octobre 2026. Repéré dans le récapitulatif Developer-Häppchen de heise Developer (en allemand).