SSR with Nuxt 3
Thème :
Junior
1 vues ·2/9 leçonsQu’est-ce Que Nuxt ?
Nuxt est un framework construit sur Vue qui fournit le SSR, SSG, le routage basé sur les fichiers et de nombreuses améliorations de l’expérience développeur directement “out of the box”.
Pourquoi Nuxt ? (Le Vue Naked VS Le Vue Armé)
Sans Nuxt (SSR Manuel, La Galère)
- Configurer webpack/Vite pour le SSR
- Mettre en place un serveur Node.js
- Gérer l’hydration manuellement
- Configurer le routage
- Gérer les balises
head/meta - Gérer la récupération de données
- Mettre en place l’environnement de développement
Avec Nuxt (La Rolls)
- ✅ SSR/SSG/ISR configuré automatiquement
- ✅ Routage basé sur les fichiers
- ✅ Auto-imports (fini les
importpartout) - ✅ Gestion
<head>intégrée - ✅ Composables de récupération de données (
useFetch) - ✅ Routes API côté serveur
- ✅ Support TypeScript natif
- ✅ Outils de développement intégrés
Créer un Projet Nuxt
npx nuxi@latest init mon-app-nuxt
cd mon-app-nuxt
npm install
npm run dev
La Structure du Projet
mon-app-nuxt/
├── .nuxt/ # Sortie du build (dans .gitignore)
├── assets/ # Assets non-compilés (Sass, images)
├── components/ # Composants Vue auto-importés
├── composables/ # Composables auto-importés
├── layouts/ # Composants de mise en page
├── middleware/ # Middleware de route
├── pages/ # Routes basées sur les fichiers ← LE CŒUR
├── plugins/ # Plugins Vue
├── public/ # Fichiers statiques
├── server/ # Routes & middleware côté serveur
│ ├── api/ # Points d'entrée API
│ └── middleware/ # Middleware serveur
├── utils/ # Utilitaires auto-importés
├── app.vue # Composant racine
├── nuxt.config.ts # La Config Nuxt
└── package.json
Le Point d’Entrée de l’Application
<!-- app.vue -->
<template>
<NuxtLayout>
<NuxtPage />
</NuxtLayout>
</template>
<NuxtLayout>- Affiche le layout en cours<NuxtPage>- Affiche la page en cours
La Configuration (nuxt.config.ts)
// nuxt.config.ts
export default defineNuxtConfig({
// Activer les devtools
devtools: { enabled: true },
// Mode SSR (par défaut: true)
ssr: true,
// Modules
modules: ['@nuxt/ui', '@pinia/nuxt', '@nuxtjs/tailwindcss'],
// Config runtime
runtimeConfig: {
// Privé (serveur uniquement)
apiSecret: '',
// Public (client & serveur)
public: {
apiBase: '/api',
},
},
// Config de l'app
app: {
head: {
title: 'Mon App Nuxt',
meta: [{ name: 'description', content: 'Mon application incroyable' }],
},
},
// Règles de routes (Le Rendu Hybride !)
routeRules: {
'/': { prerender: true },
'/admin/**': { ssr: false },
},
});
Les Auto-Imports (Le Super-Pouvoir Nuxt)
Nuxt importe automatiquement les APIs Vue et ses propres composables :
<script setup>
// APIs Vue - auto-importées (pas besoin d'import !)
const count = ref(0);
const double = computed(() => count.value * 2);
// Composables Nuxt - auto-importés
const route = useRoute();
const { data } = await useFetch('/api/users');
// Vos composables dans /composables - auto-importés
const { user } = useAuth();
</script>
Plus besoin d’importer :
- La réactivité Vue (
ref,computed,watch) - Le cycle de vie Vue (
onMounted,onUnmounted) - Les composables Nuxt (
useFetch,useRoute,useState) - Vos composables dans
/composables - Vos utilitaires dans
/utils - Les composants dans
/components
Lancer Nuxt
# Développement
npm run dev
# Build pour la production
npm run build
# Prévisualiser le build de production
npm run preview
# Générer un site statique
npm run generate
Les Grimoires De Tests
📘 Cette leçon fait partie du cours Vue SSR & Nuxt sur la plateforme d’apprentissage RostoDev.
Prêt à passer à la suite ?
Vous avez terminé cette leçon sur Qu'est-ce Que Nuxt ?. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.