learn.chetana.fr

SSR, hydratation et les conventions Nuxt

13 min de lectureEssentiel

Le rendu universel (la feature qui justifie tout)

Une SPA classique envoie un HTML vide + 2 Mo de JS : blanc à l'écran, invisible pour les crawlers. Nuxt fait du SSR universel :

1. requĂȘte → le SERVEUR exĂ©cute les composants Vue → HTML complet renvoyĂ©
   (l'utilisateur voit la page immédiatement, le SEO voit tout)
2. le navigateur charge le JS → HYDRATATION : Vue « s'attache » au HTML existant,
   branche rĂ©activitĂ© et listeners — la page devient interactive
3. navigations suivantes : cĂŽtĂ© client (SPA) — plus de rechargement

Le concept Ă  vraiment comprendre est l'hydratation : le composant s'exĂ©cute deux fois (serveur puis client), et le HTML des deux exĂ©cutions doit coĂŻncider — sinon « hydration mismatch ». Corollaires : pas de window au setup (il n'existe pas sur le serveur — c'est le import.meta.client et le onMounted qu'on utilise partout sur cette plateforme), et pas de valeurs diffĂ©rentes entre les deux passes (l'heure, l'alĂ©atoire).

Les conventions : la structure EST la configuration

Nuxt remplace la configuration par des dossiers signifiants :

  • pages/ → le routing : pages/cours/[course]/[...lesson].vue = la route dynamique + catch-all (celle de cette plateforme !) ;
  • components/ → auto-importĂ©s (avec le piĂšge du pathPrefix qu'on a payĂ© : ui/atoms/UiButton.vue devient UiAtomsUiButton sauf config) ;
  • composables/ et utils/ → auto-importĂ©s aussi — useProgress() s'utilise sans import ;
  • server/ → le backend Nitro (leçon 3) ; middleware/, layouts/, plugins/ — chacun son rĂŽle.

Le contrat : tu suis la convention, Nuxt fait la plomberie (code-splitting par page, préchargement, imports). Tu la refuses, tu te bats contre le framework.

đŸ§© Quiz1/3

L'hydratation, c'est


🃏 Flashcards1/4