Retour aux modules
FW
Module 02

Panorama des Frameworks Front-end

Analyse comparative de Next.js, Nuxt et SvelteKit : routing, rendering, layouts et gestion d'etat.

Next.js, Nuxt et SvelteKit

Analyse approfondie des trois frameworks majeurs.

Next.js (React) : Le framework React le plus populaire. Il offre SSR, SSG, ISR, API Routes, et un ecosysteme riche. Ideal pour les applications complexes.

Nuxt (Vue.js) : Le meta-framework de Vue.js. Auto-imports, modules Nuxt, et une DX excellente. Parfait pour les projets Vue.

SvelteKit (Svelte) : Base sur Svelte, un compilateur plutot qu'un runtime. Performance exceptionnelle, syntaxe minimaliste.

Chaque framework a sa philosophie : Next.js mise sur la flexibilite, Nuxt sur la convention, SvelteKit sur la simplicite.

Exemples de code

Next.js - app/products/[id]/page.tsx
typescript
export default async function ProductPage({
  params
}: {
  params: Promise<{ id: string }>
}) {
  const { id } = await params;
  const product = await getProduct(id);

  return <ProductDetail product={product} />;
}
Nuxt - pages/products/[id].vue
html
<script setup>
const route = useRoute()

const { data: product } = await useFetch(
  `/api/products/${route.params.id}`
)
</script>

<template>
  <ProductDetail :product="product" />
</template>
SvelteKit - src/routes/products/[id]/+page.ts
typescript
export async function load({ params }) {
  const product = await getProduct(params.id);

  return { product };
}

A retenir

  • 1Next.js : flexibilite maximale, ecosysteme React immense
  • 2Nuxt : conventions fortes, auto-imports, modules puissants
  • 3SvelteKit : compilateur, performance native, syntaxe legere
  • 4Le choix depend du projet, de l'equipe et des contraintes

Exercice pratique

Route dynamique Next.js App Router

Ecrivez un composant de page Next.js App Router pour afficher un article de blog a partir de son slug.
La page doit :
1Etre un composant async (Server Component)
2Recevoir un parametre dynamique slug via les params (qui est une Promise en Next.js 16)
3Appeler une fonction getArticle(slug) pour recuperer l'article
4Retourner un <article> avec le titre dans un <h1> et le contenu dans un <p>
typescript