Believemy logo purple

Les nouveautés de NextJS 15

NextJS 15 a été présenté aux yeux du monde le 24 octobre 2024 à San Francisco, voici tout ce que l'on sait des puissantes nouveautés de NextJS 15 !
Mis à jour le 5 décembre 2024
Believemy logo

Sommaire

1. La prise en charge de React 19

2. Une amélioration des messages d'erreur d'hydratation

3. Une mise à jour de create-next-app

    3.1 La possibilité d'activer Turbopack

    3.2 La possiblité d'utiliser l'option --empty

4. L'optimisation du cache

    4.1 Plus rien n'est mis en cache par défaut

    4.2 Plus de contrôle sur la mise en cache

5. Les nouvelles fonctionnalités expérimentales

    5.1 Le prérendu partiel (Partial Prerendering - PPR)

    5.2 L'exécution après la réponse (Next After)

6. Conclusion

 

La prise en charge de React 19

NextJS 15 introduit la compatibilité avec la toute dernière version de React, React 19, qui devrait sortir avant la fin de l'année, avec de nombreuses nouveautés.

Cette nouvelle version de React apporte par exemple des Server Actions ainsi que les Server Components qui ne sont ni plus ni moins que ce que propose déjà NextJS. Il reste cependant des améliorations sur les performances proposées par React dont NextJS 15 pourra profiter toute en y ajoutant ses propres optimisations.

 

Une amélioration des messages d'erreur d'hydratation

Cette nouvelle version de NextJS 15 propose également une amélioration de ses messages d'erreur d'hydratation.

Un message d'hydratation se produit lorsqu'une erreur est détectée dans le processus qui lie le code JavaScript à un contenu HTML pré-rendu sur le serveur (ceci permet de rendre la page interactive).

En quelques sortes ce que cherche à faire NextJS - et finalement React - c'est d'améliorer les performances en ne modifiant le code HTML que dans quelques parties bien précises de la page qui doivent être mises à jour.

On appelle ce procédé l'hydratation. 😬

Cependant, des erreurs d'hydratation peuvent survenir lorsque le code côté serveur et le code côté client ne sont pas synchronisés.

Par exemple, si le rendu HTML généré par le serveur diffère du rendu côté client, React renverra un message d'erreur d'hydratation, indiquant que l'interface ne correspond pas à ce qui était prévu. Ces erreurs peuvent être causées par des éléments dynamiques qui changent entre le moment où le HTML est rendu sur le serveur et quand il est exécuté sur le client, comme les dates ou les identifiants uniques.

Dans Next.js 15, les messages d'erreur d'hydratation ont été améliorés pour être plus clairs et fournir des informations plus précises afin de faciliter la résolution de ces problèmes​. ✨

Voici un message d'erreur d'hydratation dans les versions précédentes de Next :

Exemple d'un message d'erreur d'hydratation avec les anciennes versions de NextJS
Exemple d'un message d'erreur d'hydratation avec les anciennes versions de NextJS

Et voici les nouveaux messages d'erreur d'hydratation avec la nouvelle version de NextJS :

Exemple d'un message d'erreur d'hydration avec la nouvelle version de NextJS
Exemple d'un message d'erreur d'hydration avec la nouvelle version de NextJS

On remarque immédiatement plus d'informations sur ce qu'il s'est passé et sur les endroits sur lesquels nous avons rencontré une erreur ! Plutôt sympa non ? 😊

Par exemple ce genre de code déclencherait aussi tôt un problème d'hydratation :

JSX
const Hey = () => {
  return (
    <p>
      Premier texte
      <p>Autre texte mais dans un autre paragraphe donc erreur ici</p>
    <p>
  );
};

 

Une mise à jour de create-next-app

L'outil create-next-app (qui permet d'initialiser rapidement des projets avec NextJS) a été mis à jour avec une nouvelle interface plus conviviale et des options supplémentaires pour améliorer l'expérience utilisateur.

La possibilité d'activer Turbopack

Turbopack est un nouveau bundler ultra-rapide conçu pour remplacer Webpack. Il permet d'accélérer considérablement les temps de compilation et de développement local, ce qui est particulièrement utile pour les gros projets où les temps de build peuvent devenir rapidement gigantesque. 😅

Avec NextJS 15, create-next-app inclut une option qui permet d'activer Turbopack lors de la création d'un nouveau projet, permettant dès le départ  amélioration significative des performances.

 

La possiblité d'utiliser l'option --empty

Une autre fonctionnalité intéressante est l'ajout de l'option --empty, qui permet de créer un projet NextJS minimal, c'est-à-dire sans les fichiers et configurations par défaut. Très utile pour les développeurs qui souhaitent partir d'une base complètement vide et configurer leur projet selon leurs besoins.

CONSOLE
npx create-next-app@rc --empty

 

L'optimisation du cache

Dans la version 15 de NextJS, la gestion du cache par défaut a été totalement modifiée pour donner plus de contrôle aux développeurs.

Plus rien n'est mis en cache par défaut

Contrairement aux versions précédentes de NextJS, dans la version 15 plus aucune requête n'est mise en cache par défaut. Les données ne sont désormais plus stockées pour être utilisées plus tard.

Pour activer l'optimisation des mises en cache, nous sommes désormais obligés de le préciser pendant la requête.

 

Plus de contrôle sur la mise en cache

L'objectif de cette modificatioon est de donner aux développeurs la possibilité de choisir explicitement ce qu'ils souhaitent garder en mémoire.

Il est désormais possible d'utiliser ces deux options :

  • force-cache : Cette option permet de forcer la mise en cache des requêtes ou des routes, garantissant que les données sont stockées et réutilisées.
JSX
fetch('http://localhost:3001/believemy', { cache: 'force-cache' });

 

  • dynamic: "force-static" : Cette option permet de définir certaines parties de l'application comme statiques, en forçant la mise en cache de manière plus stricte pour ces ressources.
JSX
// pages/index.js
export const dynamic = 'force-static'; // force le contenu à être statiquement mis en cache

export default function HomePage() {
  return (
    <div>
      <h1>Bienvenue sur Next.js 15</h1>
      <p>Cet exemple utilise dynamic: 'force-static' pour un rendu entièrement statique.</p>
    </div>
  );
}

 

 

Les nouvelles fonctionnalités expérimentales

Le prérendu partiel (Partial Prerendering - PPR)

Cette toute nouvelle version de NextJS introduit la fonctionnalité Partial Prerendering (PPR), qui permet de combiner le rendu statique et dynamique sur une même page.

L'objectif est d'optimiser les performances en ne rendant que les parties d'une page qui ont changé.

Cette fonctionnalité est disponible de manière expérimentale via une configuration que vous devrez effectuer dans next.config.js​

 

L'exécution après la réponse (Next After)

Cette nouvelle version propose également une nouvelle API expérimentale : next/after.

L'idée est d'exécuter après l'envoi d'une réponse un ensemble d'instructions. On peut imaginer une utilité pour des tâches de journalisation par exemple sans ralentir la réponse principale (donc finalement très intéressant pour optimiser notre référencement sur les moteurs de recherche). 😁

En voici un petit exemple :

JSX
import { unstable_after as after } from 'next/server';
import { log } from '@/app/utils';
 
const Content = () => {
  
  after(() => {
    log(); // Ce code est exécuté après que le rendu ait été généré
  });
 
  return <>Believemy</>;
}

export default Content;

 

Conclusion ✨

Voilà tout ce qu'il fallait savoir sur les nouveautés de NextJS 15 ! Finalement, aucun changement majeur ou bloquant donc c'est une excellente nouvelle : il n'y a pas de modification à apporter sur vos projets !

Si vous voulez vous préparer à NextJS 15 dans une formation continuellement à jour allez consulter notre formation dédiée à NextJS !

Page d'accueil de notre formation NextJS complète
Page d'accueil de notre formation NextJS complète
Catégorie : Développement
Believemy logo
Commentaires (0)

Vous devez être connecté pour commenter cet article : se connecter ou s'inscrire.

Essayez gratuitement

Que vous essayiez de scaler votre start-up, de créer votre premier site internet ou de vous reconvertir en tant que développeur, Believemy est votre nouvelle maison. Rejoignez-nous, évoluez et construisons ensemble votre projet.

Believemy is with anyone