Je fais partie de ces gens qui ont abordé JavaScript par ses frameworks avant même de vraiment connaître le langage (très mauvaise idée, mais une réalité du marché).
On m'a collé directement sur NodeJS et ReactJS, et j'ai évolué dessus pendant plusieurs années.
En 2020, Xavier Van de Woestyne me conseille vivement de passer à NextJS.
"Attends, tu utilisais déjà NextJS avant que React nous oblige à le faire ?!
— Oui."
C'est quoi NextJS ?
Je considère NextJS comme le vrai framework fini que React n'a jamais été parce que ses concepteurs insistaient pour que ce dernier reste au stade de bibliothèque.
Et il y a une différence. NextJS propose d'emblée les points suivants :
- Routeur intégré (pas besoin de mettre en place react-router).
- Serveur backend intégré (pas besoin d'une appli NodeJS).
- Rendu serveur (SSR) (pour le SEO, un gros souci côté React).
- Une solution d'hébergement gratuite et performante grâce à Vercel.
Il propose aussi une optimisation des images, ainsi que l'internationalisation : en quelques lignes de configuration, vous pouvez déployer un site en plusieurs langues.
Tout cela constitue un framework (un vrai) qui permet de rapidement mettre en place un site.
J'ai donc adopté NextJS parce qu'il me facilitait le travail, que les projets étaient simples à maintenir, et les mises à jour rapides à effectuer.
Retenez bien ces trois éléments, ils sont importants pour la suite.
L'arrivée de NextJS 13
On peut dire sans hésiter que la version 13 (fin 2022) est un changement majeur dans l'histoire du framework.
Fini le système de routage à partir du dossier pages. On passe désormais à un dossier app, avec un découpage en fichiers types, etc.
Cette mise à jour m'avait beaucoup intéressé et j'avais hâte de tester tout ça dans la nouvelle version de mon site perso (celui sur lequel vous lisez ces lignes). Une refonte totale du design et du contenu.
J'avais pris quelques jours de vacances pour travailler sur cette migration, mais le lancement de NextJS fut catastrophique : rien ne fonctionnait (voir l'article complet sur le sujet).
Ce qui m'a le plus déçu, c'était qu'on n'avait aucune solution pour migrer l'internationalisation.
Plusieurs de mes sites utilisent ce système intégré à NextJS depuis la version 10, mais l'équipe chez Vercel estimait alors que ce n'était pas une priorité.
L'absence de cette fonctionnalité et le fait que tout soit instable m'empêchait d'utiliser le routeur app en production. J'ai donc effectué la refonte de mon site en conservant le système pages.
Et le temps passa
Au fil des mois, j'ai pu voir assister à toutes les disputes autour des Server Components de React, que Vercel avait adopté pour faire tourner le routeur app de NextJS 13.
J'ai aussi vu passer plusieurs articles et vidéos de développeurs confirmés annonçant leur abandon futur ou acté de l'écosystème React.
Personnellement, j'étais un peu loin de tout ça.
Mes clients aux projets les plus complexes partaient sur des architectures Node + React. Les autres étaient sur du statique, que NextJS gère très bien, mais où il n'est pas toujours utile.
Quand à mes projets personnels, j'ai découvert des alternatives à ReactJS/NextJS, mais j'ai surtout passé beaucoup de temps à explorer JavaScript en natif, qui a beaucoup évolué ces dernières années.
En fait, depuis un an, je n'ai lancé aucun projet NextJS.
Et cet éloignement m'a fait réfléchir : est-ce que j'avais encore vraiment besoin de NextJS ?
La suite au prochain article...
"Espèce de traître !!!"
... publié en même temps que celui-ci.
"Oh..."
Ici.