Séance 4 : Router et navigation
🎯 Objectifs
Maîtriser navigation avancée avec Vue Router.
Gérer routes dynamiques et sécurisées.
📖 Partie théorique
Routes dynamiques et imbriquées
Paramètres de route
Les routes dynamiques capturent des valeurs variables dans l'URL (:id, :slug).
// Configuration des routes
const routes = [
{ path: '/task/:id', component: TaskDetail, props: true },
{ path: '/user/:userId/task/:taskId', component: TaskDetail },
{ path: '/profile/:userId?', component: UserProfile }, // Optionnel
]Accès aux paramètres :
// Dans le composant
<script setup>
import { useRoute } from 'vue-router'
const route = useRoute()
const taskId = route.params.id
</script>Routes imbriquées
Organisation hiérarchique avec composants parent/enfant.
Navigation programmatique :
Gestion des erreurs
Pages d'erreur et redirections pour une meilleure expérience utilisateur.
Page 404 personnalisée
Configuration des routes d'erreur
Gestion des erreurs de navigation
Routes et meta
Il est possible d'ajouter des métadonnées aux routes pour diverses utilisations (authentification, titres, etc.).
Usage dans les composants :
Le meta peut aussi être utilisé pour des guards ou pour changer le titre de la page dynamiquement.
Guards
Fonctions de contrôle d’accès (
beforeEach, meta).Protection des routes sensibles (authentification).
Concepts clés :
Global Guards : s’appliquent à toutes les navigations.
Per-Route Guards : spécifiques à certaines routes.
In-Component Guards : définis dans les composants.
Guard global :
Guard par route :
Guard dans composant :
Mise à jour du title de la page
Lazy loading (Chargement différé)
Chargement des composants uniquement quand nécessaire pour optimiser les performances.
Import dynamique
Composant de chargement
📝 Travaux pratiques
Ajouter route
/task/:id.Mettre en place un guard d’accès (auth simulée).
Créer une page 404 personnalisée.
Last updated