Next.js vient de lancer une bombe qui change la donne, en publiant la version stable de Next.js 15 avant la conf Next.js – et c'est absolument fou ! ?
Voici quelques-unes des nouvelles mises à jour et fonctionnalités époustouflantes intégrées à Next.js 15 :
- Mises à niveau améliorées avec @next/codemod CLI : Next.js 15 inclut une nouvelle CLI codemod qui facilite la mise à niveau vers les dernières versions de Next.js et React. La CLI met à jour les dépendances, affiche les codemods disponibles et fournit des conseils sur leur application.
- API de requête asynchrone : les API qui dépendent de données spécifiques à la requête, telles que les en-têtes, les cookies, les paramètres et les searchParams, sont devenues asynchrones. Ce changement affecte les API telles que les cookies, les en-têtes, draftMode, les paramètres (dans divers contextes) et searchParams. Il s'agit d'un changement radical mais un codemod est disponible pour faciliter la migration.
- Modifications dans la sémantique de la mise en cache : Next.js 15 modifie le comportement de mise en cache par défaut pour les requêtes de récupération, les gestionnaires de route GET et le cache du routeur client. Ceux-ci ne sont désormais plus mis en cache par défaut. Vous pouvez opter pour la mise en cache si nécessaire.
- Les requêtes de récupération utilisent désormais le no-store comme option de cache par défaut, ce qui signifie qu'elles ne sont pas mises en cache par défaut. Vous pouvez activer la mise en cache en définissant l'option de cache sur forcer le cache.
- Les gestionnaires de route GET ne sont pas non plus mis en cache par défaut. Vous pouvez activer la mise en cache à l'aide des options de configuration de route statique.
- Le cache du routeur client ne met plus en cache les composants de la page par défaut. Vous pouvez revenir au comportement précédent en définissant staleTime dans next.config.ts.
- Prise en charge de React 19 : Next.js 15 prend en charge React 19, y compris le compilateur React expérimental.
- L'App Router utilise React 19 RC, tandis que la rétrocompatibilité pour React 18 est maintenue pour le Pages Router. L'utilisation de React 18 pour le routeur de pages et de React 19 pour le routeur d'applications dans la même application n'est pas recommandée en raison d'incohérences potentielles.
- Le compilateur React vise à simplifier le code en réduisant la mémorisation manuelle, mais il est encore expérimental et peut entraîner des temps de construction plus lents.
- Stable Turbopack Dev : Turbopack, le nouveau système de build basé sur Rust, est désormais stable en mode développement (prochain dev --turbo). Il offre des améliorations significatives des performances au démarrage du serveur, à l'actualisation rapide et à la compilation initiale de l'itinéraire.
- Indicateur d'itinéraire statique : Ce nouvel indicateur visuel permet d'identifier les itinéraires statiques et dynamiques pendant le développement.
- API unstable_after : l'API unstable_after permet l'exécution de code une fois la diffusion d'une réponse terminée, ce qui est particulièrement utile pour les tâches qui n'ont pas besoin de bloquer l'utilisateur, comme la journalisation et l'analyse.
- API instrumentation.js : cette API permet aux développeurs de surveiller les événements du cycle de vie du serveur Next.js, ce qui est utile pour le suivi des performances et l'analyse des erreurs.
- Améliorations apportées aux formulaires avec l'option : Le nouveau
- Prise en charge de TypeScript dans next.config.ts : Next.js 15 prend en charge un fichier TypeScript next.config.ts, offrant la sécurité des types et la saisie semi-automatique pour les options de configuration.
- Améliorations de l'auto-hébergement : Next.js 15 offre plus de contrôle sur les en-têtes Cache-Control pour l'auto-hébergement, simplifie l'optimisation des images en utilisant automatiquement Sharp et comprend une vidéo de démonstration et un didacticiel sur l'auto-hébergement. .
- Sécurité améliorée des actions du serveur : Next.js élimine désormais les actions du serveur inutilisées pendant le processus de construction et utilise des ID imprévisibles pour les références côté client, améliorant ainsi la sécurité.
- Regroupement de packages externes : Next.js 15 fournit des options de configuration plus cohérentes pour le regroupement de packages externes sur les routeurs d'applications et de pages. L'option serverExternalPackages permet une gestion unifiée.
- Prise en charge d'ESLint 9 : Next.js 15 introduit la prise en charge d'ESLint 9 tout en maintenant la compatibilité ascendante avec ESLint 8. La mise à jour inclut également la suppression des options obsolètes dans Next Lint et une mise à niveau vers eslint-plugin-react- se connecte à la version 5.0.0.
- Améliorations du développement et de la construction :
- Remplacement amélioré des modules à chaud (HMR) des composants du serveur pour améliorer les performances de développement local.
- Génération statique plus rapide dans App Router grâce à des processus de rendu optimisés et des caches de récupération partagés entre les travailleurs.
- Introduction de contrôles expérimentaux de génération statique pour les cas d'utilisation avancés, mais ceux-ci nécessitent de la prudence car ils pourraient entraîner une consommation accrue de ressources.
- Divers :
- Modifications et améliorations majeures dans différents domaines tels que next/image, Middleware, next/font, mise en cache, options de configuration, Speed Insights, plans de site, itinéraires dynamiques, revalidation, etc.
- Améliorations générales de la gestion des métadonnées, du tremblement d'arbre, des routes parallèles, de la gestion des erreurs, de la prélecture et de plusieurs autres aspects.
La question se pose : « Comment la version Next.js 15 résout-elle le problème de l'exposition involontaire des fonctions côté serveur ? »
La version Next.js 15 introduit deux améliorations pour remédier à l'exposition involontaire des fonctions côté serveur, en particulier les actions du serveur :
- Élimination du code mort : les actions du serveur qui ne sont pas utilisées dans l'application sont automatiquement supprimées lors du prochain processus de construction. Cela les empêche d'exposer leurs identifiants au bundle JavaScript côté client et de créer un point de terminaison public.
- ID d'action sécurisé : Next.js 15 génère des ID indevinables et non déterministes pour les actions du serveur, ce qui rend difficile pour les attaquants de les deviner et d'y accéder directement. Ces identifiants sont périodiquement recalculés entre les versions pour améliorer encore la sécurité.
Il est important de noter que ces mesures n’éliminent pas complètement le risque d’exposition aux actions du serveur. Les développeurs doivent toujours traiter les actions du serveur comme des points de terminaison HTTP publics et mettre en œuvre des mesures de sécurité appropriées pour protéger les données et fonctionnalités sensibles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn