Par Guillermo Rauch & l’équipe Vercel · 2016 · Sources officielles vérifiées
En résumé
Framework open-source React créé par Vercel permettant de concevoir des applications web fullstack performantes grâce aux React Server Components, au rendu hybride (SSR, SSG, ISR) et aux Server Actions.
Next.js est devenu le standard de l'industrie pour créer des applications React modernes en production. Introduisant l'App Router basé sur l'architecture des React Server Components (RSC), Next.js permet d'exécuter des composants exclusivement sur le serveur pour réduire drastiquement la taille du bundle JavaScript envoyé au navigateur, tout en offrant un système de routage par fichiers (file-system routing), des optimisations automatiques d'images et de polices, ainsi que le compilateur Turbopack.
L'App Router repose sur une séparation stricte entre composants serveurs et clients pour maximiser le rendu et la sécurité.
Par défaut, tous les composants du dossier `app/` s'exécutent côté serveur. Ils peuvent accéder directement aux bases de données et secrets d'API sans exposer de code sensible ni envoyer de JavaScript inutile au client.
Flexibilité totale : pages pré-rendues statiquement à la compilation (SSG), générées à la demande pour chaque requête (SSR), ou régénérées en arrière-plan à intervalles programmés (ISR).
Fonctions asynchrones exécutées sur le serveur et invocables directement depuis des formulaires ou composants clients sans devoir configurer manuellement d'endpoints API dédiés.
Exemple typique d’un React Server Component Next.js avec accès direct aux données
// Ce composant s'exécute exclusivement sur le serveur
import { db } from "@/lib/db";
import Link from "next/link";
export default async function ArticlesPage() {
// Requête directe en base de données sans passer par fetch() ni exposer d'API publique
const articles = await db.article.findMany({
where: { published: true },
orderBy: { createdAt: "desc" },
});
return (
<main className="max-w-4xl mx-auto py-12 px-4">
<h1 className="text-3xl font-bold mb-6">Derniers Articles Tech</h1>
<ul className="space-y-4">
{articles.map((item) => (
<li key={item.id} className="p-4 border rounded-xl">
<Link href={`/article/${item.slug}`} className="hover:underline">
<h2 className="text-xl font-semibold">{item.title}</h2>
</Link>
</li>
))}
</ul>
</main>
);
}Next.js fournit un rendu serveur complet et du SEO natif, tandis que Vite produit une SPA statique rendue dans le navigateur.
| Critère | Next.js | Vite + React (SPA classique) |
|---|---|---|
| Rendu initial | HTML généré sur le serveur, immédiat et indexable par les moteurs de recherche. | Page blanche initiale (`<div id="root">`), le navigateur télécharge le JS puis monte le DOM. |
| Backend | Fullstack intégré : Route Handlers, Server Actions, middleware. | Frontend uniquement, nécessite un serveur backend séparé (Express, Fastify). |
| Complexité | Plus élevée, gestion des états serveurs vs clients. | Plus simple, modèle de programmation React standard purement client. |
Données techniques vérifiées auprès des documentations officielles, des RFCs et des spécifications standards.