Astro vs Next.js : lequel convient à votre site

Astro vs Next.js : îlots contre Server Components | We.Inc

Astro livre du HTML statique avec des îlots interactifs ; Next.js construit des applications React avec des Server Components. Comparez les modes de sortie, l'interactivité et l'hébergement, puis testez vos besoins.

Astro génère les pages en HTML sans JavaScript côté client, sauf si vous ajoutez un îlot avec une directive client, ce qui le rend très adapté aux sites de contenu. Next.js est un framework React où les pages sont des Server Components par défaut et où les parties interactives s'activent avec 'use client', ce qui convient aux produits proches d'une application, avec connexion et beaucoup de state.

Astro et Next.js comparés

Cochez les besoins qui décrivent votre projet. Chacun penche vers Astro ou Next.js pour une raison indiquée, et le décompte ci-dessous donne une recommandation de départ, pas un verdict définitif.

Questions fréquentes

Astro peut-il utiliser des composants React ?

Oui. Après npx astro add react, vous pouvez importer un composant React dans une page .astro. Sans directive client, il est rendu uniquement en HTML statique ; ajoutez client:load ou une autre directive pour le rendre interactif.

Astro ne sert-il qu'aux sites statiques ?

Non. Avec un adaptateur serveur installé, n'importe quelle page peut renoncer au prérendu avec export const prerender = false, ou vous pouvez définir output: 'server' pour rendre chaque page à la requête et ne prérendre que celles de votre choix.

Les îlots Astro sont-ils la même chose que les React Server Components ?

Ils résolvent un problème similaire par des chemins opposés. Astro part de zéro JavaScript et vous ajoutez des îlots interactifs. Next.js part de React rendu côté serveur et vous marquez les parties client. Les React Server Components eux-mêmes n'envoient jamais leur code au navigateur.

Lequel est le meilleur pour un blog ?

En général Astro, car un blog est surtout du texte et des images qui n'ont pas besoin de JavaScript. Next.js gère aussi bien les blogs, et c'est le choix le plus simple si le blog fait partie d'une application React plus large.

Lequel est le meilleur pour un tableau de bord ou une application SaaS ?

En général Next.js. Les écrans connectés avec formulaires, données en direct et state client partagé exploitent les points forts de React, et les Route Handlers se trouvent dans le même projet.

Comment fonctionnent les îlots Astro

Comment fonctionnent les Server Components de Next.js

Faire le choix

Ajouter une partie interactive dans chacun

Page Astro avec un îlot React

Le titre et le paragraphe sont livrés en simple HTML. Seul LikeButton charge du JavaScript, et seulement une fois qu'il apparaît à l'écran.

Page Next.js avec un Client Component

La page est un Server Component. Le fichier 'use client' est la seule partie hydratée dans le navigateur.

Rendu à la requête dans Astro

Sortie serveur avec un adaptateur Node.js

Lancez d'abord npx astro add node. Avec output défini à 'server', chaque page est rendue à la requête sauf si elle exporte prerender = true.

La plupart des pages sont des articles, de la documentation ou des textes marketing

Les composants Astro sont rendus en HTML sans JavaScript client, ce qui suffit à une page de lecture.

Nous voulons utiliser des composants Svelte ou Vue à côté de React

Astro prend en charge React, Preact, Svelte, Vue et SolidJS sur la même page.

L'interactivité se limite à quelques widgets

Les directives client ne chargent du JavaScript que pour ces îlots, et seulement quand c'est nécessaire.

Nous voulons héberger sur un simple hébergement de fichiers statiques

La sortie d'Astro est statique par défaut ; l'export statique de Next.js fonctionne mais perd les fonctionnalités qui ont besoin d'un serveur.

La plupart des écrans sont derrière une connexion

Les écrans connectés et riches en données conviennent au state React, avec des Server Components qui récupèrent les données sur le serveur.

Beaucoup de composants partagent un state client

Une application React avec des providers de context et des Client Components gère directement le state partagé.

Nous voulons des endpoints d'API dans le même projet

Les Route Handlers vivent à côté des pages et s'exécutent dès que le site tourne sur son serveur Node.js.

Notre équipe construit déjà tout en React

Next.js est du React de bout en bout, il n'y a donc pas de second modèle de composants à apprendre.

Lequel convient à votre projet ?

Besoins du projet

Astro : {a}, Next.js : {n}

Sélectionnez les besoins qui s'appliquent à votre projet.

Penchez pour Astro.

Penchez pour Next.js.

Égalité : les deux conviennent, choisissez donc celui que votre équipe connaît.

Effacer la sélection

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site