Conversion en Astro à partir de Next.js

Ingénierie

Si vous êtes fortement impliqué dans la communauté React, vous connaissez peut-être un framework utilisé pour créer des applications Web statiques et côté serveur. Il offre plusieurs avantages, comme la transformation d'une application React côté client JavaScript en une application côté serveur qui construit le contenu HTML pour l'utilisateur. En d'autres termes, le code est expédié et prêt à être utilisé, éliminant le besoin pour l'utilisateur d'exécuter du code côté client pour construire les données ou la structure HTML.

Les fichiers HTML, CSS, JavaScript et autres fichiers pré-créés sont transférés vers un serveur Web qui peut répondre aux demandes du navigateur.
Exemple de transfert de code vers un serveur pour que celui-ci puisse déplacer les fichiers requis vers le navigateur. (Image de MDN)

Premier regard, un autre Framework ?

Initialement, en explorant ce projet après mon voyage dans le monde rapide des outils JavaScript, Astro est apparu comme étant très similaire à Next.js en termes de fourniture de génération de site statique (SSG). C'est une énorme victoire, car cela se traduit par de meilleures performances et plus encore. Cependant, la principale différence entre les deux est qu'Astro ne se préoccupe pas de la langue que vous utilisez. C'est un outil qui se concentre uniquement sur la construction de l'ensemble du HTML qui peut être généré sur le serveur pendant l'étape de construction. Par conséquent, tout JavaScript inutilisé sur le HTML exécuté sur le serveur est éliminé.

Next.js ne fait-il pas cela aussi ?

Eh bien, oui et non. Next.js gère cela, mais au prix de JavaScript supplémentaire et de bundles qui s'exécutent sur la page. Celles-ci hydratent le contenu à partir du serveur, lui permettant de rester interactif avec du JavaScript côté client requis (comme des animations et des événements). La page est expédiée avec du code supplémentaire qui permet cette fonctionnalité, quel que soit l'interactivité, ce qui rend la charge utile plus importante. En comparaison, avec Astro, seul le JavaScript requis pour rendre la page interactive et le code de lancement de l'application est expédié, sans contraintes liées à une bibliothèque ou une langue particulière. Sur un site Web SPA de base, Next.js prend environ 704 ms à charger, tandis qu'Astro ne prend que 107 ms.

Next.js effectue 16 requêtes et charge un site Web de base en 704 ms, tandis qu'Astro effectue 7 requêtes et met 107 ms à charger.
Exemple côte à côte avec Next.js à gauche et Astro à droite.
Le site Web personnel de Jeff Mendez comprend trois éléments de navigation, une image de Jeff Mendez en train de pêcher et une introduction. Bonjour, je m'appelle Jeff Mendez et je suis un ingénieur logiciel et fondateur de A11yWatch, une suite d'amélioration d'accessibilité Web. Consultez A11yWatch pour améliorer votre inclusion Web et utilisez le vérificateur d'accessibilité de site Web gratuitement. Voicile lien Github vers mon code personnel.</0>
Exemple de site Web testé.

Vers l'avenir !

Nous sommes très enthousiastes à l'idée d'Astro et avons hâte de transférer une partie de notre contenu. Restez à l'écoute car nous publierons d'autres contenus sur le nouvel outil qui peuvent aider les développeurs à maintenir leur productivité tout en expédiant de petits lots. La migration de l'exemple peut être trouvée ici pour avoir une idée de l'effort nécessaire pour déplacer une page simple. Cela a pris environ 20 minutes, de la lecture initiale de la documentation au déplacement de l'ensemble de l'application. Le site Web de la conversion Next.js en Astro peut être extrait pour une configuration TypeScript.

Jeff Mendez

Je m'appelle Jeff et je suis le fondateur et créateur d'A11yWatch.

Articles associés

Restez inclusif en toute confiance

Commencez dès maintenant avec A11yWatch pour des outils d'accessibilité web automatisés abordables et rapides.