IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

La préversion de Next.js 16.3 ajoute la navigation instantanée et le préchargement partiel


Sujet :

Bibliothèques & Frameworks

  1. #1
    Communiqués de presse

    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Avril 2025
    Messages
    922
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Avril 2025
    Messages : 922
    Par défaut La préversion de Next.js 16.3 ajoute la navigation instantanée et le préchargement partiel
    La préversion du framework open source de développement web full-stack Next.js 16.3 est disponible, et ajoute la navigation instantanée et le préchargement partiel

    La préversion de Next.js 16.3 est disponible et introduit les « Instant Navigations » (navigation instantanée), permettant aux applications pilotées par le serveur d’offrir des transitions de page instantanées, à l’instar des SPA. Cette version inaugure également le préchargement partiel, qui récupère et met en cache des structures de page réutilisables par route, réduisant ainsi les requêtes réseau redondantes.

    Next.js est un framework open source de développement web full-stack créé par la société privée Vercel, qui permet de développer des applications web basées sur React avec rendu côté serveur et rendu statique. La documentation de React mentionne Next.js parmi les « chaînes d’outils recommandées », le conseillant aux développeurs lorsqu’ils « créent un site web avec rendu côté serveur à l’aide de Node.js ». Alors que les applications React traditionnelles ne peuvent afficher leur contenu que côté client dans le navigateur, Next.js étend cette fonctionnalité aux applications rendues côté serveur.

    La préversion de Next.js 16.3 est disponible et introduit les « Instant Navigations » (navigation instantanée), permettant aux applications pilotées par le serveur d’offrir des transitions de page instantanées, à l’instar des SPA. Cette version inaugure également le préchargement partiel, qui récupère et met en cache des structures de page réutilisables par route, réduisant ainsi les requêtes réseau redondantes. Les développeurs doivent activer l’indicateur « Cache Components » pour utiliser ces fonctionnalités et peuvent choisir entre le streaming, la mise en cache ou le blocage des récupérations de données côté serveur pour chaque navigation.

    En février, un ingénieur et un modèle d'IA ont reconstruit de zéro le framework Next.js avec l'IA en une semaine. Le résultat, vinext (prononcé « vee-next »), est un remplacement direct de Next.js, construit sur Vite, qui se déploie sur Cloudflare Workers à l'aide d'une seule commande. Lors des premiers benchmarks, il construit des applications de production jusqu'à 4 fois plus rapidement et produit des bundles clients jusqu'à 57 % plus petits.

    Nom : 0.jpg
Affichages : 981
Taille : 38,0 Ko

    Voici l'annonce de la préversion Next.js 16.3 :

    Présentation de Next.js 16.3 : Navigations instantanées

    Next.js 16.3 est sur le point d’arriver, et il regorge d’une multitude d’améliorations : un meilleur rendu sous charge grâce aux flux natifs de Node.js, des temps de démarrage plus rapides en développement local, et une intégration plus poussée avec les workflows basés sur des agents.

    Nous aborderons ces fonctionnalités dans les semaines à venir, alors que nous préparons une version stable. Mais aujourd’hui, nous souhaitons nous concentrer sur une nouvelle fonctionnalité que nous appelons « Navigations instantanées » : une suite d’outils qui apporte à Next.js la réactivité des SPA pilotées par le client, sans sacrifier les avantages liés à son modèle piloté par le serveur.

    Voyons comment cette fonctionnalité répond à la critique de longue date (et justifiée !) selon laquelle les composants serveur peuvent donner l’impression que les applications sont peu réactives.

    Navigations instantanées

    L’une des frustrations les plus courantes que l’on entend à propos des applications Next.js est que les navigations semblent lentes.

    Dans une application pilotée par le serveur, la navigation nécessite généralement un aller-retour réseau :

    1. Vous cliquez sur un lien.
    2. Il ne se passe rien.
    3. Puis le serveur répond, et la page suivante s’affiche.

    Ce n’est pas nécessairement un inconvénient, et cela peut très bien fonctionner pour les sites web axés sur le contenu, comme les journaux et les blogs. Mais cela donne à l’expérience un aspect « typique d’un site web ». Ce n’est pas assez réactif. Comparons cela à la façon dont les applications pilotées par le client gèrent la navigation :

    1. Vous cliquez sur un lien.
    2. Instantanément, vous voyez apparaître une ébauche de la page suivante (certaines données étant encore en cours de chargement).
    3. Puis le serveur répond, et la page suivante s’affiche dans son intégralité.

    C’est l’une des raisons courantes pour lesquelles de nombreux développeurs préfèrent créer des SPA (applications monopages). Même si le paradigme requête/réponse piloté par le serveur présente de nombreux avantages, les navigations instantanées restent plus agréables pour de nombreux types d’applications.

    Nous corrigeons cela

    Nous avons bien entendu vos retours à ce sujet.

    Dans Next.js 16.3, nous proposons de nouveaux comportements optionnels qui vous permettent de profiter du meilleur des deux mondes : des applications pilotées par le serveur avec des navigations instantanées. Vous bénéficiez de tous les avantages d’un serveur, mais les navigations sont instantanées, comme dans une application monopage.

    Voyons comment cela fonctionne.

    Tout d’abord, activez « Cache Components »

    Pour tester ces nouveaux comportements, activez l’option « Cache Components » :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import type { NextConfig } from 'next';
     
    const nextConfig: NextConfig = {
      cacheComponents: true,
      // ...
    };
     
    export default nextConfig;


    Au cours de l’année écoulée, nous avons simplifié Next.js pour revenir à ses fondamentaux : dynamique par défaut, sans mise en cache cachée ou implicite. Ce drapeau active ces nouveaux comportements et deviendra la valeur par défaut dans une future version majeure de Next.js.

    Stream, Cache ou Block

    Désormais, lorsqu’une route attend des données sur le serveur, plusieurs options s’offrent à vous :

    Nom : 1.jpg
Affichages : 859
Taille : 45,2 Ko

    Que signifient ces options ?

    Pour rendre la navigation instantanée, vous « transformez » une opération asynchrone en quelque chose qui peut être disponible immédiatement :

    - Diffusion avec <Suspense>. L'utilisateur verra immédiatement un état de chargement (suivi de la diffusion progressive de l'interface utilisateur).

    - Mise en cache avec 'use cache'. L'utilisateur verra immédiatement une interface utilisateur précédemment mise en cache (réutilisée entre les requêtes).

    Dans les deux cas ci-dessus, la navigation donnera à l’utilisateur l’impression d’être une application monopage (SPA) et sera instantanée.

    Cependant, vous pouvez parfois souhaiter que certaines navigations dépendent du serveur. Par exemple, un blog peut choisir de ne jamais afficher de fenêtre de chargement pour les articles. Dans ces cas-là, vous pouvez indiquer à Next.js que vous souhaitez que cette navigation soit bloquée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // in page.tsx or layout.jsx
    export const instant = false;


    La boîte de dialogue d’erreur disparaîtra alors.

    Remarquez comment cela vous donne le contrôle. Si vous souhaitez que votre application pilotée par le serveur réagisse instantanément aux clics sur les liens — sans attendre la réponse du réseau —, utilisez alors « Stream » ou « Cache ». Si vous souhaitez que certaines routes retardent les navigations, utilisez « Block ».

    Pour en savoir plus sur l’intégration d’Instant Insights aux agents de codage, consultez Next.js 16.3 : Améliorations de l’IA.

    Préserver l’instantanéité des navigations

    Avec Instant Insights, nous avons fait des navigations lentes une erreur en phase de développement. Pour détecter plus facilement les régressions affectant vos routes instantanées après des modifications et des refactorisations, nous avons également fourni une aide au test instantané pour les tests Playwright :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    import { expect, test } from '@playwright/test';
    import { instant } from '@next/playwright';
     
    test('product title is available immediately', async ({ page }) => {
      await page.goto('/products/shoes');
     
      // Assert what's visible without waiting for network
      await instant(page, async () => {
        await page.click('a[href="/products/hats"]');
        await expect(page.locator('h1')).toContainText('Baseball Cap');
        await expect(page.getByText('Checking inventory...')).toBeVisible();
      });
     
      await expect(page.getByText('12 in stock')).toBeVisible();
    });


    Cela vous permet (ou permet à votre agent) de vérifier de manière plus granulaire ce qui doit être instantanément visible après chaque clic sur un lien.

    Nous explorons également des moyens de faire remonter les erreurs que vous constatez en développement pendant le processus de compilation, afin que toute régression dans vos routes instantanées soit détectée dès la compilation.

    Repenser le préchargement

    Pour que les navigations soient véritablement instantanées (à l’instar des SPA), nous avons dû combler deux lacunes distinctes :

    - Le client doit communiquer avec le serveur. Cela peut être lent s’il y a une latence élevée entre eux.

    - De plus, le serveur doit générer une réponse. Cela peut être lent si le code du serveur est lent.

    En diffusant la réponse en continu ou en la mettant en cache, nous éliminons la deuxième lacune : le serveur lui-même ne bloque pas. Mais il subsiste un écart entre le client et le serveur. Comment Next.js pouvait-il « connaître » la réponse instantanément au moment où l’utilisateur cliquait ?

    Auparavant, Next.js résolvait ce problème en envoyant une requête de préchargement au serveur pour chaque lien présent dans la fenêtre d’affichage. Si vous avez prêté attention à l’onglet « Réseau » en mode production, vous avez peut-être remarqué une rafale de requêtes lors du défilement :

    Nom : 2.jpg
Affichages : 856
Taille : 75,6 Ko

    Vous avez été nombreux à nous dire que cela semblait ridicule, et franchement, nous sommes d’accord.

    Nous avons réfléchi à la manière dont les applications monopages résolvent ce problème. Une application monopage est capable de répondre instantanément à chaque navigation, car elle regroupe tout le code nécessaire à l’affichage de la page suivante et l’envoie au client. Elle peut encore avoir besoin de données supplémentaires — ce qui explique qu’un clic n’affiche pas immédiatement la page complète — mais cela suffit pour afficher une « coque » de la page.

    Nous avons donc décidé d’emprunter cette astuce aux applications monopages. Au lieu de précharger une page par lien, Next.js va désormais précharger une coque réutilisable par route. Ces coques seront ensuite mises en cache côté client afin de n’être récupérées qu’une seule fois.

    Par exemple, si vous aviez une barre latérale comportant vingt liens de chat, Next.js envoyait auparavant une requête de préchargement distincte pour chaque lien. Cependant, avec ce nouveau comportement, il n’effectuera qu’un seul préchargement par route : une structure pour la route /chat/[id], une structure pour la route /dashboard, et ainsi de suite. Conceptuellement, cela s’apparente à la manière dont les applications monopages téléchargent le code grâce au fractionnement du code par route.

    Nom : 3.jpg
Affichages : 847
Taille : 32,8 Ko

    Comme les shells sont réutilisés d’un lien à l’autre, ils constituent également la base de la navigation hors ligne. Dans une prochaine version, nous explorerons comment les routes préchargées pourraient rester navigables en cas de coupure momentanée du réseau.

    Activation du Partial Prefetching (préchargement partiel)

    Pour tester ce nouveau comportement de préchargement, que nous appelons « préchargement partiel », activez-le dans votre configuration Next.js :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import type { NextConfig } from 'next';
     
    const nextConfig: NextConfig = {
      cacheComponents: true,
      partialPrefetching: true,
      // ...
    };
     
    export default nextConfig;


    Comme pour cacheComponents, nous prévoyons de faire de partialPrefetching le comportement par défaut dans une future version majeure.

    Inspection du shell de chargement

    Pour rendre cela plus concret, nous avons ajouté un nouvel « Navigation Inspector » aux DevTools de Next.js.

    Il vous permet de mettre en pause chaque navigation au niveau de la coque afin de voir ce qui est préchargé pour chaque route :

    Nom : 4.jpg
Affichages : 849
Taille : 32,0 Ko

    Ensuite, lorsque vous cliquez sur « Reprendre », la navigation affiche la page complète. Cela vous permet de voir, pendant le développement, quelle partie de votre route peut s’afficher instantanément, et laquelle ne peut s’afficher qu’après la connexion au réseau.

    Comme auparavant, le préchargement proprement dit n’est activé qu’en production.

    Préchargement au-delà d’un simple « shell »

    Avec l’option préchargement partiel activée, nous avons réduit le volume de données préchargées par défaut par Next.js.

    Au lieu d’envoyer une requête de préchargement pour chaque lien, Next.js ne précharge désormais qu’un « shell » réutilisable par route distincte dans la fenêtre d’affichage (un pour la page « Chat », un pour la page « Paramètres », etc.), et les met en cache pendant toute la durée de la session.

    Cependant, il arrive parfois que vous souhaitiez précharger davantage que la structure de base. Par exemple, vous pourriez vouloir qu’un en-tête de chat « s’affiche » instantanément sur une page de chat. Pour activer le préchargement par lien, vous pouvez ajouter <Link prefetch={true}> à certains liens.

    Notez que même dans ce cas, Next.js ne tentera pas de rendre l’intégralité de la route jusqu’au plus profond. Au lieu de cela, il se contentera de rendre ce qui est disponible de manière synchrone ou marqué avec [B]'use cache'[/c]. Cela signifie que vous n’avez plus à faire un choix « tout ou rien » en matière de préchargement. Le shell instantané vous fournit la base, puis <Link prefetch={true}> associé à 'use cache' vous permet d’ajouter un préchargement supplémentaire par lien pouvant inclure davantage de contenu.

    Afin de limiter les coûts, le préchargement par lien est restreint au contenu connu au moment de la compilation. Si la charge supplémentaire sur le serveur ne vous dérange pas, export const prefetch = 'allow-runtime' étend cette fonctionnalité au contenu mis en cache au moment de la requête.

    Nous l’utilisons nous-mêmes

    Nous avons adopté ces outils sur la version v0 avant même cette mise à jour. La version v0 propose de nombreuses fonctionnalités client avancées, mais la navigation ne donnait pas l’impression d’être instantanée depuis un certain temps.

    Instant Insights nous a indiqué les routes qui ne s’affichaient pas instantanément. Voici comment la navigation s’est accélérée une fois que nous avons commencé à mettre en œuvre les corrections :

    Nom : 4.jpg
Affichages : 815
Taille : 17,6 Ko

    Nous partagerons les modèles spécifiques que nous avons retenus dans un prochain article. Nous continuons également à optimiser les améliorations de préchargement décrites plus haut ; nous nous attendons donc à ce que ces chiffres se rapprochent de zéro.

    Une démo à explorer

    Si vous souhaitez découvrir ces fonctionnalités dans une base de code open source plus concise, Next Beats est un lecteur de musique construit sur la préversion de Next.js 16.3, dont le code source est disponible sur GitHub. La fonctionnalité « Cache Components » est activée ; ainsi, « Stream » et « Cache » sont utilisés pour chaque route, ce qui permet à chaque navigation d’aboutir à un véritable shell plutôt qu’à un indicateur de chargement. Le préchargement partiel est activé, de sorte que chaque route précharge un seul shell réutilisable côté client. Il en résulte des navigations qui semblent instantanées, à l’instar d’une application monopage.

    Récapitulatif

    En résumé, nous avons travaillé pour permettre à votre application de bénéficier de navigations instantanées similaires à celles d’une SPA :

    - Si vous diffusez avec <Suspense> ou Cache avec 'use cache', les navigations vers votre route seront instantanées.

    - Si vous bloquez la fonctionnalité via export const instant = false, vous désactivez l’application des navigations instantanées vers cette route.

    - Next.js génère automatiquement une coque réutilisable pour chaque route instantanée, et ne la précharge qu’une seule fois.

    - Vous pouvez utiliser l’aide au test instant() pour éviter les régressions, et Navigation Inspector pour inspecter visuellement les coques.

    - Vous pouvez activer une préchargement plus approfondi au niveau de chaque lien avec <Link prefetch> et 'use cache'.

    Ces modifications sont activées via les indicateurs cacheComponents: true et partialPrefetching: true.

    Grâce à ces modifications, nous rendons l’expérience de navigation au premier clic de Next.js aussi fluide que dans les applications monopages, sans pour autant renoncer aux avantages du modèle mental centré sur le serveur et aux performances globales qu’il permet.

    Problèmes connus

    La version Preview présente des problèmes connus sur lesquels nous travaillons activement. Ceux-ci seront corrigés avant la sortie de notre version stable.

    - Dans certains cas, un blocage de route n’est pas signalé en tant qu’« Instant Insight ». Lorsque la prélecture partielle est activée, l’accès aux paramètres à l’intérieur d’un shell provoque le blocage d’une route, mais cela n’est pas signalé en tant qu’« Instant Insight ». L’Inspecteur de navigation et l’assistant de test instant() ne sont pas affectés.

    - L’outil Instant Insights présente quelques problèmes sous Safari. En phase de développement, utilisez Chrome ou Firefox pour obtenir les meilleurs résultats.

    Source : Annonce préversion Next.js 16.3

    Et vous ?

    Pensez-vous que cette annonce est crédible ou pertinente ?
    Quel est votre avis sur le sujet ?

    Voir aussi :

    Next.js 16.2 est lancé avec un rendu et un démarrage plus rapides, une page d'erreur repensée, une mise à jour majeure garantissant un taux de réussite de 100 % pour les agents IA

    Next.js 16.1, le framework open source de développement web full-stack, est désormais disponible avec la mise en cache du système de fichiers Turbopack, un analyseur de bundle Next.js et bien plus encore
    Publication de communiqués de presse en informatique. Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Communiqués de presse

    Femme Profil pro
    Traductrice Technique
    Inscrit en
    Juin 2023
    Messages
    3 076
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Traductrice Technique

    Informations forums :
    Inscription : Juin 2023
    Messages : 3 076
    Par défaut Next.js 16.3 est disponible et réduit l’utilisation de la mémoire du serveur de développement
    Le framework open source de développement web full-stack Next.js 16.3 est disponible, apportant des gains de performances significatifs en réduisant la consommation de mémoire du serveur jusqu'à 90 %

    Next.js 16.3 est désormais disponible et apporte des gains de performances majeurs, réduisant l’utilisation de la mémoire du serveur de développement jusqu’à 90 % et offrant des builds jusqu’à 5,5 fois plus rapides grâce à une mise en cache sur disque améliorée. Le rendu côté serveur gère désormais jusqu’à 22 % de requêtes en plus en charge, et la prise en charge de TypeScript 7 permet une vérification des types plus rapide lors des builds.

    Next.js est un framework open source de développement web full-stack créé par la société privée Vercel, qui permet de développer des applications web basées sur React avec rendu côté serveur et rendu statique. La documentation de React mentionne Next.js parmi les « chaînes d'outils recommandées » et le conseille aux développeurs qui souhaitent « créer un site web avec rendu côté serveur à l'aide de Node.js ». Alors que les applications React traditionnelles ne peuvent afficher leur contenu que dans le navigateur côté client, Next.js étend cette fonctionnalité pour inclure des applications rendues côté serveur.

    Next.js prend en charge la mise en forme via CSS, ainsi que les fichiers SCSS et Sass précompilés, le CSS-in-JS et le JSX stylisé. De plus, il intègre la prise en charge de TypeScript et un système de regroupement intelligent. Le transpileur open source SWC est utilisé pour transformer et compiler le code en JavaScript utilisable par un navigateur. Webpack, un autre outil open source, sert ensuite à regrouper les modules, mais il est actuellement en cours de remplacement par TurboPack. Tous ces outils s’utilisent avec npm dans un terminal.

    La principale caractéristique de Next.js réside dans son utilisation du rendu côté serveur afin de réduire la charge pesant sur les navigateurs web et d’offrir une sécurité renforcée. Cela peut s’appliquer à n’importe quelle partie de l’application ou à l’ensemble du système, ce qui permet de sélectionner des pages riches en contenu pour un rendu côté serveur. Cette fonctionnalité peut également être réservée aux nouveaux visiteurs, afin de réduire la charge pesant sur les navigateurs web qui n’ont encore téléchargé aucun des ressources du site.

    Next.js 16.3 est désormais disponible et apporte des gains de performances majeurs, réduisant l’utilisation de la mémoire du serveur de développement jusqu’à 90 % et offrant des builds jusqu’à 5,5 fois plus rapides grâce à une mise en cache sur disque améliorée. Le rendu côté serveur gère désormais jusqu’à 22 % de requêtes en plus en charge, et la prise en charge de TypeScript 7 permet une vérification des types plus rapide lors des builds. Cette version inclut également la suite « Instant Navigations » (à activer manuellement) pour une réactivité de type SPA, ainsi que d’autres améliorations destinées aux développeurs.


    Voici un extrait de la présentation de Next.js 16.3 :

    Next.js 16.3

    Le mois dernier, nous avons publié une version préliminaire de la version 16.3 qui vous permettait de tester des navigations de type SPA, des outils d’IA améliorés et un serveur de développement beaucoup moins gourmand en mémoire.

    Aujourd’hui, nous sommes ravis d’annoncer que Next.js 16.3 est disponible !

    Cette version regorge d’améliorations pour toutes les applications Next.js existantes :

    - Moins de consommation de mémoire en développement. Les longues sessions de développement utilisent désormais jusqu’à 90 % de RAM en moins.
    - Des builds plus rapides. Les builds répétés peuvent lire les artefacts inchangés à partir du cache.
    - Une vérification des types plus rapide. next build peut utiliser TypeScript 7 pour la vérification des types.
    - Un rendu côté serveur plus rapide. Next.js gère désormais jusqu’à 22 % de requêtes en plus sous charge.
    - Documentation versionnée pour les agents IA. Les agents de codage lisent la documentation correspondant à leur version sans aucune configuration.
    - Moins de requêtes de préchargement. Les liens génèrent moins de requêtes en regroupant des charges utiles plus petites.
    - Meilleure mise en cache des ressources statiques. Les ressources immuables peuvent, en option, être réutilisées d’un déploiement à l’autre.
    - Limites d’erreur personnalisées. Récupérez les données ayant échoué en les récupérant à nouveau après une erreur serveur.
    - Importations glob intégrées. Importez plusieurs fichiers grâce à une nouvelle API Turbopack.
    - Paramètres racine. Accédez facilement aux paramètres de niveau racine tels que [lang] depuis n’importe quel composant serveur.

    Il inclut également Instant Navigations, une suite d’outils optionnelle qui apporte à Next.js la réactivité des SPA pilotées par le client, sans sacrifier les avantages liés à son modèle piloté par le serveur :

    - Instant Insights. Un nouvel outil de développement qui met automatiquement en évidence les navigations lentes.
    - Préchargement partiel. Contrôle précis de la quantité de contenu qu’un lien doit précharger.
    - Meilleure régénération statique incrémentielle. Les URL omises lors du pré-rendu à la compilation peuvent désormais servir une page de chargement instantanée au premier visiteur.
    - Inspecteur de navigation. Un nouvel outil de développement qui vous permet d’inspecter visuellement la page de chargement d’une navigation.
    - Assistant de test Playwright. Écrivez des tests de régression qui empêchent les refactorisations de ralentir la navigation.

    Les comportements sous-jacents à Instant Navigations deviendront la norme dans une future version majeure, car ils s’inscrivent dans le cadre de notre travail de l’année dernière visant à ramener Next.js à ses fondamentaux : dynamique par défaut, sans mise en cache cachée ou implicite.

    La version 16.3 inclut également des fonctionnalités expérimentales que vous pouvez essayer dès aujourd’hui, telles que le compilateur React basé sur Rust et la résilience réseau.

    Il s'agit de notre plus importante mise à jour du framework depuis la sortie de Next.js 16.0 en novembre dernier, et nous avons hâte que vous la testiez.

    Pour effectuer la mise à jour, installez la dernière version de Next depuis npm :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    npm install next@latest


    Améliorations pour les applications actuelles

    Next.js 16.3 apporte des améliorations à tous les projets existants, notamment une réduction de la consommation de mémoire du serveur de développement, un rendu plus rapide et de meilleures performances d’exécution, le tout sans aucune modification de votre code d’application.

    Nous recommandons à toutes les applications de passer à la version 16.3 pour commencer à bénéficier de ces avantages dès aujourd’hui.

    Réduction de la consommation de mémoire en développement

    Dans la version 16.3, Turbopack utilise jusqu’à 90 % de mémoire en moins lors de l’exécution de `next dev`. Cette réduction est due à deux nouvelles fonctionnalités désormais activées par défaut : la mise en cache sur disque pour le développement (introduite pour la première fois dans la version 16.1) et l’éviction de mémoire.

    Nous avons reçu d’excellents retours de la part des premiers utilisateurs, et nous sommes ravis d’apporter ces améliorations de performances à toutes les applications Next.

    Nom : 1.jpg
Affichages : 990
Taille : 30,0 Ko

    Des builds plus rapides

    La fonctionnalité de mise en cache sur disque, qui accélère le développement depuis la version 16.1, fonctionne désormais avec Next Build et est activée par défaut. Nous l’utilisons en interne chez Vercel depuis des mois et constatons que certains projets bénéficient de builds 5,5 fois plus rapides en CI.

    Nom : 2.jpg
Affichages : 841
Taille : 42,1 Ko

    Vérification des types plus rapide avec TypeScript 7

    TypeScript 7 a été lancé le mois dernier. Il s'agit d'un portage natif de TypeScript 10 fois plus rapide, offrant une vérification des types nettement plus rapide.

    Pour commencer à utiliser TypeScript 7 pour la vérification des types lors de la prochaine compilation, il suffit de mettre à jour la dépendance locale de votre projet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pnpm add -D typescript@^7


    Rendu côté serveur plus rapide

    Nous avons remplacé les flux Web par des flux Node.js natifs dans la couche de rendu de l'App Router, supprimant ainsi la surcharge liée à la conversion entre les deux lors du rendu côté serveur.

    D’après nos tests de performance, les applications traitent jusqu’à 22 % de requêtes en plus sous charge, sans aucune modification du code de l’application.

    Nom : 3.jpg
Affichages : 869
Taille : 21,2 Ko

    Documentation adaptée à la version pour les agents IA

    Les agents de codage IA lisent désormais automatiquement la documentation correspondant à la version de Next.js utilisée par votre projet.

    L'exécution de next dev génère et met à jour un bloc AGENTS.md adapté à la version, qui pointe directement vers la documentation intégrée dans les modules Node locaux de votre projet. Ces informations étant désormais directement accessibles aux agents, nous retirons nos anciennes compétences qui existaient uniquement pour fournir la documentation à jour à vos applications.

    Moins de requêtes de préchargement

    Dans la version 16.3, les préchargements dont la taille de charge utile est inférieure à un certain seuil sont automatiquement regroupés afin de réduire le nombre total de requêtes de préchargement effectuées par votre application.

    Les préchargements pour les segments partagés plus volumineux restent toutefois séparés, afin de pouvoir être réutilisés sur plusieurs routes.

    Meilleure mise en cache des ressources statiques

    Les ressources statiques immuables peuvent désormais être réutilisées d’un déploiement à l’autre. Comme elles sont immuables, elles ne peuvent pas être affectées par des problèmes liés au décalage.

    Limites d’erreur personnalisées

    Auparavant, les limites d’erreur React dans Next.js interféraient avec le code de l’application qui appelait notFound ou redirect. Elles ne pouvaient également réinitialiser que l’état côté client et ne vous offraient aucun moyen de réessayer les composants serveur ayant échoué lors du rendu.

    Dans Next.js 16.3, vous pouvez utiliser catchError pour définir une limite d’erreur personnalisée qui n’interfère pas avec notFound ou redirect :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    'use client';
    import { catchError, type ErrorInfo } from 'next/error';
     
    function ErrorFallback(props: { title: string }, { error, retry }: ErrorInfo) {
      return (
        <div>
          <h2>{props.title}</h2>
          <p>{error.message}</p>
          <button onClick={() => retry()}>Try again</button>
        </div>
      );
    }
     
    export default catchError(ErrorFallback);


    La limite reçoit également une fonction retry() que vous pouvez appeler pour récupérer à nouveau les enfants de la limite, ce qui peut inclure le ré-rendu de n’importe quel composant serveur.

    Importations glob intégrées

    Turbopack prend désormais en charge le chargement de plusieurs modules à partir du système de fichiers à l’aide de l’API import.meta.glob compatible avec Vite, ce qui apporte le rechargement à chaud des modules et d’autres avantages aux composants serveur qui lisent des fichiers locaux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    import matter from 'gray-matter';
     
    export default function Page() {
      // .md needs a loader registered in next.config.js
      const posts = import.meta.glob('./posts/*.md', { eager: true });
     
      return (
        <ul>
          {Object.entries(posts).map(([path, mod]) => {
            const { data } = matter(mod.default);
            return <li key={path}>{data.title}</li>;
          })}
        </ul>
      );
    }


    Paramètres de la racine

    Auparavant, la seule façon d’accéder aux paramètres d’une route dynamique consistait à les transmettre en tant que props depuis la page de la route.

    Cela entraînait un « prop-drilling » excessif pour les paramètres définis au-dessus de la mise en page racine, qui sont en réalité globaux et donc susceptibles d’être utilisés dans l’ensemble de votre arborescence de composants.

    Next.js 16.3 introduit une nouvelle fonctionnalité permettant d’accéder facilement à ces paramètres racine depuis n’importe quel composant serveur, sans avoir à passer de props :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    import { lang } from 'next/root-params';
     
    export default async function PostPage(
      props: PageProps<'/[lang]/posts/[slug]'>,
    ) {
      const { slug } = await props.params;
      const language = await lang();
     
      return (
        <article>
          <p>Language: {language}</p>
          <p>Post: {slug}</p>
        </article>
      );
    }


    Cela rend l’utilisation beaucoup plus ergonomique pour des cas tels que l’internationalisation, où de nombreux utilitaires partagés et composants profondément imbriqués ont besoin d’accéder à la langue actuelle. De plus, les paramètres racine fonctionnent également à l’intérieur des portées use cache.

    Ils sont actuellement pris en charge dans les composants serveur, et nous prévoyons d’étendre cette prise en charge aux gestionnaires de routes et aux actions serveur dans une prochaine version.

    Voilà donc les nouveautés pour toutes les applications qui effectuent la mise à jour aujourd’hui. Mais la version 16.3 inclut également un ensemble passionnant de fonctionnalités optionnelles qui ouvrent la voie à la prochaine version majeure du framework, et nous avons hâte de les explorer plus en détail.

    Navigations instantanées

    Au cours de l’année écoulée, nous nous sommes attachés à corriger les aspects les plus frustrants du développement avec Next.js.

    Les composants serveur permettaient aux applications d’envoyer moins de code JavaScript et d’éviter les « cascades réseau », mais ils ralentissaient la navigation. Le modèle de mise en cache était implicite, déroutant et peu adapté aux applications dynamiques. La prélecture était trop agressive et trop coûteuse.

    En novembre dernier, nous avons introduit une nouvelle primitive de mise en cache dans le framework : la directive use cache. Elle est plus explicite et plus modulable que nos précédentes API de mise en cache côté serveur, et elle apporte désormais pour la première fois la mise en cache côté client à Next.js.

    Nous nous sommes appuyés sur cette primitive pour résoudre les problèmes de navigation, de mise en cache et de préchargement mentionnés ci-dessus, ce qui nous a permis d’aboutir à un modèle de programmation plus simple et plus puissant. Les composants serveur et Suspense restent les deux éléments fondamentaux, et use cache s’intègre désormais à ceux-ci de manière à vous permettre de créer des applications statiques, dynamiques ou tout autre type intermédiaire.

    Dans la version 16.3, vous pouvez commencer à développer en utilisant toutes ces nouvelles fonctionnalités en activant deux options :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import type { NextConfig } from 'next';
     
    const nextConfig: NextConfig = {
      cacheComponents: true,
      partialPrefetching: true,
    };
     
    export default nextConfig;


    Et si vous avez des projets existants à mettre à niveau, vous ou votre agent pouvez migrer une application vers Cache Components.



    Source : Annonce de Next.js 16.3

    Et vous ?

    Pensez-vous que cette annonce est crédible ou pertinente ?
    Quel est votre avis sur le sujet ?

    Voir aussi :

    La préversion du framework open source de développement web full-stack Next.js 16.3 est disponible, et ajoute la navigation instantanée et le préchargement partiel

    Next.js 16.2 est lancé avec un rendu et un démarrage plus rapides, une page d'erreur repensée, une mise à jour majeure garantissant un taux de réussite de 100 % pour les agents IA

    Comment nous avons reconstruit Next.js avec l'IA en une semaine, l'interface API Next.js vinext permet de créer des applications de production jusqu'à 4 fois plus rapidement, par Steve Faulkner
    Publication de communiqués de presse en informatique. Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

Discussions similaires

  1. Ajouter un next et un prev a mon script
    Par orphen dans le forum jQuery
    Réponses: 5
    Dernier message: 16/08/2012, 18h17
  2. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03
  3. [VB6] [ADO] Pb ajout enregistrement table liée
    Par fikou dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 01/10/2002, 11h49
  4. Connaitre l'unitée à ajouter dans USES
    Par DelphiCool dans le forum Langage
    Réponses: 7
    Dernier message: 01/08/2002, 13h48
  5. Ajouter une aide
    Par Mailgifson dans le forum C++Builder
    Réponses: 5
    Dernier message: 12/06/2002, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo