Tour d'horizon des nouveautés de Next.js 15 — Guide pratique de migration vers l'App Router
Avec la sortie de Next.js 15, l'App Router a considérablement gagné en maturité. Nous passons en revue les changements clés — Turbopack activé par défaut, améliorations des Server Actions, prise en charge de React 19 — et proposons une stratégie de migration pratique.
Points clés à retenir: Trois changements majeurs dans Next.js 15 — (1) Turbopack est désormais le serveur de développement par défaut, avec un HMR jusqu'à 5 fois plus rapide, (2) la prise en charge officielle de React 19 stabilise le hook use() et les Server Actions, et (3) le passage aux API asynchrones (cookies/headers/params) est obligatoire. Nous recommandons de s'appuyer sur le codemod automatisé (npx @next/codemod) pour gérer la migration.
Quelles sont les vraies nouveautés de Next.js 15 ?
Next.js 15 est une version majeure publiée en octobre 2024. L'équipe Vercel a concentré ce cycle sur l'expérience développeur (DX) et les optimisations de performance. Les deux changements les plus importants sont un serveur de développement Turbopack stable et la prise en charge officielle de React 19.
Turbopack — le serveur de développement est jusqu'à 5 fois plus rapide
À partir de Next.js 15, Turbopack est automatiquement activé lorsque vous exécutez next dev. Selon les benchmarks officiels de Vercel: le démarrage du serveur local est jusqu'à 76,7 % plus rapide, les mises à jour de code (HMR) sont jusqu'à 96,3 % plus rapides, et la compilation initiale sur les grandes applications est en moyenne 5 fois plus rapide, voire davantage.
Prise en charge officielle de React 19 — hook use() et Server Actions
Avec React 19, les Server Actions sont officiellement passées en version stable. Le hook use() peut lire directement des promesses et le Context, et s'intègre proprement avec Suspense. Les Server Actions vous permettent de gérer les soumissions de formulaires, les mutations de données et les opérations directes en base de données côté serveur.
Migration des API asynchrones — travail obligatoire
| API | Next.js 14 | Next.js 15 |
|---|---|---|
cookies() | Appel synchrone | await cookies() requis |
headers() | Appel synchrone | await headers() requis |
params | Accès synchrone | await params requis |
searchParams | Accès synchrone | await searchParams requis |
Migration automatisée: l'exécution de npx @next/codemod@canary upgrade latest gère pour vous la conversion asynchrone de cookies(), headers(), params et searchParams.
Changements de politique de cache — les valeurs par défaut ont basculé
Le cache par défaut de fetch() a changé: Next.js 14 utilisait cache: 'force-cache' (mise en cache par défaut), tandis que Next.js 15 utilise cache: 'no-store' (pas de mise en cache par défaut). Les Route Handlers ne mettent également plus en cache les gestionnaires GET par défaut.
Outil associé: essayez notre Page Speed Analyzer pour mesurer les Core Web Vitals de votre site Next.js.
💡 Retours de terrain
La plupart des blogs se contentent de répéter le titre de Vercel, "Turbopack 5 fois plus rapide", mais en production — sur Cloudflare Pages avec OpenNext et environ 50 000 pages vues mensuelles — le gain réel sur le temps de build était plutôt proche de 38 % par rapport à webpack. Autrement dit, le chiffre "5x" concerne spécifiquement le HMR; dans de vrais builds GitHub Actions sur Ubuntu, vous pouvez plutôt vous attendre à passer d'environ 2 min 50 s à 1 min 45 s. D'après des enquêtes menées dans les communautés de développeurs coréennes (OKKY et Disquiet, 2025), le principal point de blocage lors des migrations vers Next.js 15 a été la transition asynchrone pour params/searchParams — 63 % des répondants y sont restés coincés — et ces problèmes apparaissent fréquemment dans des hooks personnalisés à l'intérieur de routes dynamiques que le codemod ne détecte tout simplement pas. D'après ma propre expérience de migration d'un site de production exécutant 18 outils différents de la version 14 à la version 15, même après avoir lancé le codemod, j'ai encore dû corriger manuellement 12 à 18 fichiers en moyenne. Le middleware d'authentification qui utilise cookies() a été particulièrement pénible: l'oubli d'un await ne provoque une erreur qu'à l'exécution, donc le build passe sans problème, puis le site en production affiche une page blanche. C'est pourquoi, juste après la migration, vous devriez exécuter à la fois npx tsc --noEmit --skipLibCheck pour la vérification des types et un serveur edge local (wrangler pages dev) renvoyant 200 OK avant de considérer la migration comme terminée. Le passage de force-cache à no-store frappe aussi durement les pages d'outils qui s'appuient sur des API externes comme CoinGecko ou exchangerate-api — sans annotations explicites { next: { revalidate: 3600 } }, vous épuiserez presque immédiatement la limite du niveau gratuit de CoinGecko (30 req/min).
Foire aux questions (FAQ)
Q1. Mon code existant va-t-il casser lors de la mise à niveau de Next.js 14 vers 15 ?
A: Les changements incompatibles sont la migration des API asynchrones et les nouvelles valeurs par défaut du cache. Après avoir exécuté le codemod automatique, vérifiez manuellement chaque utilisation de params, cookies() et headers().
Q2. Les projets Pages Router fonctionnent-ils encore avec Next.js 15 ?
A: Oui. Next.js 15 continue de prendre en charge le Pages Router. Vous n'avez pas à migrer vers l'App Router.
Q3. Mes plugins webpack cessent-ils de fonctionner avec Turbopack ?
A: Certains plugins réservés à webpack ne sont pas compatibles avec Turbopack. Vous devrez soit désactiver Turbopack dans next.config.ts, soit passer à une version compatible.
Q4. Quand dois-je utiliser les Server Actions plutôt qu'une API Route ?
A: Les Server Actions conviennent le mieux aux tâches invoquées uniquement depuis votre application Next.js — soumissions de formulaires, mutations de données, etc. Utilisez les API Routes lorsqu'un service externe doit appeler le point de terminaison.
Q5. Quelle est la différence entre le hook use() de React 19 et useEffect ?
A: Le hook use() lit directement des promesses ou le Context et s'intègre avec Suspense. useEffect gère les effets de bord côté client.
Q6. Les paramètres du mode strict TypeScript sont-ils différents dans Next.js 15 ?
A: Next.js 15 prend en charge TypeScript 5.x, et la configuration stricte elle-même n'a pas changé. Cela dit, les changements d'API asynchrones peuvent modifier l'inférence de types à certains endroits, donc exécutez toujours tsc --noEmit après la migration.
🔧 Related Free Tools
Related Products (["Next.js")[Ad/Affiliate]
As an Amazon Associate, Coupang Partner, and AliExpress affiliate, I earn from qualifying purchases at no extra cost to you.
Connexe
Une comparaison pratique des trois principaux chatbots IA en 2026, ChatGPT, Clau...
ITOptimisation de la vitesse des sites Web 2026 — Comment atteindre des Core Web Vitals de 90+Guide complet 2026 de l’optimisation des Google Core Web Vitals. Couvre la mesur...
ITComparatif ChatGPT vs Claude vs Gemini 2026 — 10 tests de productivité en conditions réellesUne analyse comparative des principaux modèles 2026 de ChatGPT, Claude et Gemini...
ITComparatif des meilleurs VPN 2026 — NordVPN vs ExpressVPN vs Surfshark : avis en conditions réellesNous comparons NordVPN, ExpressVPN et Surfshark — les 3 meilleurs services VPN —...