Comment mettre à jour vers la version 15
Mise à jour de la version 14 à la version 15
Pour mettre à jour vers Next.js version 15, vous pouvez utiliser le codemod upgrade
:
Si vous préférez le faire manuellement, assurez-vous d'installer les dernières versions de Next et React :
Bon à savoir :
- Si vous voyez un avertissement concernant les dépendances peer, vous devrez peut-être mettre à jour
react
etreact-dom
vers les versions suggérées, ou utiliser les flags--force
ou--legacy-peer-deps
pour ignorer l'avertissement. Ce ne sera plus nécessaire une fois que Next.js 15 et React 19 seront stables.
React 19
- Les versions minimales de
react
etreact-dom
sont désormais 19. useFormState
a été remplacé paruseActionState
. Le hookuseFormState
est toujours disponible dans React 19, mais il est déprécié et sera supprimé dans une future version.useActionState
est recommandé et inclut des propriétés supplémentaires comme la lecture directe de l'étatpending
. En savoir plus.useFormStatus
inclut désormais des clés supplémentaires commedata
,method
etaction
. Si vous n'utilisez pas React 19, seule la clépending
est disponible. En savoir plus.- Consultez le guide de mise à jour de React 19 pour plus d'informations.
Bon à savoir : Si vous utilisez TypeScript, assurez-vous également de mettre à jour
@types/react
et@types/react-dom
vers leurs dernières versions.
APIs de requête asynchrones (Changement cassant)
Les APIs dynamiques précédemment synchrones qui dépendent d'informations d'exécution sont désormais asynchrones :
cookies
headers
draftMode
params
danslayout.js
,page.js
,route.js
,default.js
,opengraph-image
,twitter-image
,icon
, etapple-icon
.searchParams
danspage.js
Pour faciliter la migration, un codemod est disponible pour automatiser le processus et les APIs peuvent temporairement être accédées de manière synchrone.
cookies
Utilisation asynchrone recommandée
Utilisation synchrone temporaire
headers
Utilisation asynchrone recommandée
Utilisation synchrone temporaire
draftMode
Utilisation asynchrone recommandée
Utilisation synchrone temporaire
params
& searchParams
Layout asynchrone
Layout synchrone
Page asynchrone
Page synchrone
Gestionnaires de route
Configuration runtime
(Changement cassant)
La configuration runtime
segment configuration supportait auparavant une valeur experimental-edge
en plus de edge
. Les deux configurations se réfèrent à la même chose, et pour simplifier les options, nous générerons désormais une erreur si experimental-edge
est utilisé. Pour corriger cela, mettez à jour votre configuration runtime
vers edge
. Un codemod est disponible pour le faire automatiquement.
Requêtes fetch
Les requêtes fetch
ne sont plus mises en cache par défaut.
Pour activer la mise en cache pour des requêtes fetch
spécifiques, vous pouvez passer l'option cache: 'force-cache'
.
Pour activer la mise en cache pour toutes les requêtes fetch
dans un layout ou une page, vous pouvez utiliser l'option de configuration de segment export const fetchCache = 'default-cache'
segment config option. Si des requêtes fetch
individuelles spécifient une option cache
, celle-ci sera utilisée à la place.
Gestionnaires de route
Les fonctions GET
dans les Gestionnaires de route ne sont plus mises en cache par défaut. Pour activer la mise en cache pour les méthodes GET
, vous pouvez utiliser une option de configuration de route comme export const dynamic = 'force-static'
dans votre fichier de gestionnaire de route.
Cache client-side du routeur
Lors de la navigation entre pages via <Link>
ou useRouter
, les segments de page ne sont plus réutilisés depuis le cache client-side du routeur. Cependant, ils sont toujours réutilisés lors de la navigation arrière et avant du navigateur et pour les layouts partagés.
Pour activer la mise en cache des segments de page, vous pouvez utiliser l'option de configuration staleTimes
:
Les layouts et les états de chargement sont toujours mis en cache et réutilisés lors de la navigation.
next/font
Le package @next/font
a été supprimé au profit du next/font
intégré. Un codemod est disponible pour renommer automatiquement et en toute sécurité vos imports.
bundlePagesRouterDependencies
experimental.bundlePagesExternals
est désormais stable et renommé en bundlePagesRouterDependencies
.
serverExternalPackages
experimental.serverComponentsExternalPackages
est désormais stable et renommé en serverExternalPackages
.
Speed Insights
L'instrumentation automatique pour Speed Insights a été supprimée dans Next.js 15.
Pour continuer à utiliser Speed Insights, suivez le guide de démarrage rapide de Vercel Speed Insights.
Géolocalisation avec NextRequest
Les propriétés geo
et ip
de NextRequest
ont été supprimées car ces valeurs sont désormais fournies par votre hébergeur. Un codemod est disponible pour automatiser cette migration.
Si vous utilisez Vercel, vous pouvez utiliser à la place les fonctions geolocation
et ipAddress
du package @vercel/functions
: