11 points par ragingwind 2024-10-22 | 5 commentaires | Partager sur WhatsApp

La version finale de Next.js 15 a été publiée à l’occasion de la conférence 2024. Les changements expliqués ci-dessous n’incluent pas ceux déjà présentés dans Next.js 15 RC 2. Si vous voulez connaître ces changements, commencez par lire cet article.

  • Caching Semantics (Breaking) : pour les comportements suivants, la mise en cache n’est désormais plus activée par défaut. La raison de ce changement est que des problèmes peuvent survenir lors des interactions avec Partial Prerendering(PPR) ou des bibliothèques tierces, ce qui a conduit à revoir l’approche de cache par défaut. Auparavant, force-cache était la valeur par défaut, mais elle a maintenant été remplacée par no-store, afin que rien ne soit mis en cache par défaut et que les performances ainsi que les données soient plus prévisibles.

    • Les requêtes fetch ne sont désormais plus mises en cache par défaut, avec no-store comme valeur par défaut. Si nécessaire, vous pouvez activer le cache avec l’option force-cache.
    • Les GET Route Handlers ne sont eux non plus plus mis en cache par défaut. Vous pouvez utiliser l’option force-static pour activer le cache.
    • Le Client Router Cache reflète désormais les données les plus récentes lors des changements de page et n’est plus mis en cache par défaut. Pour revenir au comportement précédent, vous pouvez définir l’option staleTimes.
  • Support de React 19 : Next.js 15 a été mis à jour pour React 19, tout en conservant la compatibilité avec React 18 dans le Pages Router. L’App Router utilise React 19 RC et, en tenant compte des retours de la communauté, permet aussi aux projets utilisant React 18 de passer à React 19. De plus, React Compiler a été introduit pour permettre une optimisation automatique et réduire le besoin de mémoïsation manuelle. Ces changements préparent la sortie finale future de React 19.

    • React Compiler (Experimental) : React Compiler est un compilateur expérimental créé par l’équipe React de Meta, qui comprend la sémantique de JavaScript et les règles de React afin d’optimiser automatiquement le code. Cela réduit le besoin pour les développeurs de recourir à une mémoïsation manuelle via des API comme useMemo et useCallback. Il est pris en charge dans Next.js 15 et n’est actuellement disponible que sous forme de plugin Babel, ce qui peut ralentir le temps de build.
    • Hydration Error Improvements : Next.js 15 améliore encore davantage les messages d’erreur et la gestion des erreurs d’hydratation déjà renforcés dans les versions précédentes. Désormais, lorsqu’une erreur d’hydratation survient, le code source de l’erreur ainsi que des suggestions de résolution sont affichés ensemble. Cela aide les développeurs à mieux comprendre et corriger les erreurs.
  • Turbopack Dev : Turbopack est désormais stabilisé, et sa rapidité améliore l’expérience de développement. Le démarrage du serveur local s’améliore d’environ 76 %, Fast Refresh de 96 %, et la première compilation de route sans cache d’environ 45 %.

  • API unstable_after (Experimental) : unstable_after est une API expérimentale introduite dans Next.js 15, qui permet de traiter des tâches secondaires comme les logs ou l’analytics après la réponse à l’utilisateur. Comme les fonctions serverless s’arrêtent immédiatement après l’envoi de la réponse, after() permet de différer l’exécution de certaines tâches une fois la réponse terminée. Il devient ainsi possible de synchroniser le chargement, les données statistiques, etc., avec des systèmes externes.

5 commentaires

 
vipeen 2024-10-23

Pour les nouveaux projets, je pars soit sur Vue 3, soit sur SvelteKit.

 
zillionstar 2024-10-22

La version de React prise en charge par Next15 commence à partir de la 19, mais React 19 n’a toujours pas encore quitté le statut de RC.

 
kbumsik 2024-10-23

Comme quelqu’un l’a mentionné, il y a encore des problèmes liés à des changements de fonctionnalités, donc c’est toujours une RC, mais à part ce point, on peut sans doute la considérer comme stable.

 
[Ce commentaire a été masqué.]
 
ragingwind 2024-10-22

Le tweet de questions-réponses du mainteneur à propos de https://x.com/timneutkens/status/1848464958830612729