Cours 17 - Routes avec Vue Router
Table des matières
Objectifs
- Être capable de configurer et d’utiliser Vue Router dans une application Vue.js 3
- Être en mesure de naviguer entre différentes vues avec
RouterLink,RouterViewet la navigation programmatique - Comprendre le rôle du routage dans une application monopage (SPA)
- Être capable de tester minimalement la configuration du routeur et la navigation
Déroulement
- Retour rapide sur l’environnement de développement
- Retour exercice 16 & solution
- Mettre à jour un projet avec npm-check-updates
- Atelier 17 – Vue Router
- Conclusion
Qu’est-ce que Vue Router ?
Vue Router est la solution officielle de routage côté client pour Vue. Dans une application monopage (SPA), il permet d’associer l’URL affichée dans le navigateur au composant à rendre, sans recharger complètement la page.
Avec Vue Router, vous pouvez :
- définir des routes associées à des composants ;
- afficher une vue différente selon l’URL ;
- gérer la navigation dans l’application.
Par exemple, une route comme /home peut être associée à un composant affichant la page d’accueil. Lorsque l’utilisateur accède à cette URL, Vue Router affiche automatiquement le composant correspondant.
Vue Router prend aussi en charge des fonctionnalités plus avancées, comme :
1. Paramètres dynamiques (équivalent de $_GET)
2. Routes imbriquées (/home/test)
3. Redirections (comme header('Location: url') en PHP)
4. Navigation programmée
5. Différents modes d’historique (back / next navigateur)
Exemple complet dans un router.ts ici: routes.zip
Concept de vue (view)
Une vue (à ne pas confondre avec Vue.js) est un composant destiné à être affiché par le routeur pour une route donnée. En pratique, une vue est souvent composée d’autres composants plus petits et réutilisables.
Convention suggérée : nommer les vues avec le suffixe View, par exemple HomeView.vue ou ProductDetailsView.vue.
Cela aide à distinguer les vues des composants réutilisables, mais ce n’est pas une obligation imposée par Vue Router.
Installation de Vue Router
Pour installer Vue Router, consultez la documentation officielle :
https://router.vuejs.org/installation
Il existe deux approches principales.
Créer un nouveau projet
La méthode recommandée aujourd’hui pour créer un projet Vue 3 est d’utiliser create-vue.
Commande
npm create vue@latest
Exemple de réponses aux questions
- Nom du projet :
vue-router-demo


Ensuite, exécutez les commandes affichées à l’écran pour démarrer le projet.
Ajouter Vue Router à un projet existant
Pour ajouter Vue Router à un projet Vue existant :
Commande
npm install vue-router@latest
Note : @latest indique qu’on installe la dernière version majeure de Vue Router compatible avec Vue 3.
Dans main.ts, le branchement minimal ressemble à ceci :
import './assets/main.css'
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
const app = createApp(App)
app.use(router)
app.mount('#app')
RouterLink et RouterView
Dans App.vue, on utilise souvent RouterLink et RouterView ensemble.
RouterLinkpermet à l’utilisateur de naviguer vers une autre route de l’application.RouterViewaffiche le composant associé à la route actuellement active.
Autrement dit :
RouterLinksert à changer de vue ;RouterViewsert à afficher la vue courante.
Lorsqu’un utilisateur clique sur un RouterLink, Vue Router met à jour l’URL sans recharger complètement la page. Ensuite, le routeur cherche quelle route correspond à cette URL et affiche dans RouterView le composant associé.
Rôle de RouterLink
RouterLink est un composant fourni par Vue Router pour créer des liens de navigation internes à l’application.
Exemple :
<RouterLink to="/about">À propos</RouterLink>
Dans cet exemple :
to="/about"indique la route à atteindre ;À proposest le texte affiché à l’écran ;- un clic sur ce lien change la route active sans recharger complètement la page.
On peut voir RouterLink comme un lien spécialisé pour les applications Vue avec routage.
Rôle de RouterView
RouterView est le composant qui sert de zone d’affichage pour la vue courante.
Exemple :
<RouterView />
Ce composant agit comme un espace réservé.
Vue Router y affiche automatiquement le composant associé à la route active.
Par exemple :
- si l’URL est
/,RouterViewpeut afficherHomeView.vue; - si l’URL est
/about,RouterViewpeut afficherAboutView.vue.
Fonctionnement ensemble
Dans une application Vue, App.vue contient souvent :
- une barre de navigation avec plusieurs
RouterLink(Header.vue) - une zone principale avec
RouterView
Cela permet de garder la même structure générale dans l’application, pendant que le contenu principal change selon la route.
Le fonctionnement est donc le suivant :
- l’utilisateur clique sur un
RouterLink - l’URL change
- Vue Router trouve la route correspondante
RouterViewaffiche la vue associée
Exemple complet
<script setup lang="ts">
import { RouterLink, RouterView } from 'vue-router'
</script>
<template>
// Pourrais être ici Header.vue ou Navbar.vue
<nav>
<RouterLink to="/">Accueil</RouterLink>
<RouterLink to="/about">À propos</RouterLink>
</nav>
<RouterView />
</template>
Dans cet exemple :
- les liens Accueil et À propos permettent de changer de route ;
- la vue associée à la route active s’affiche sous la navigation ;
- la barre de navigation reste visible pendant que le contenu principal change.
Atelier 17 – Exemple de routes
À partir des fichiers de l’atelier 17 :
atel17.zip
et de la vidéo de démonstration suivante :
À propos du serveur backend utilisé dans l’exemple
- Le serveur se démarre avec le script
npm run backenddéfini dans le fichierpackage.json. - Le serveur donne accès aux ressources définies dans le fichier
/backend/db.json. - À chaque exécution du script
npm run backend, le fichier/backend/db.default.jsonest copié vers/backend/db.json. - Cette copie permet de repartir des mêmes données à chaque démarrage de l’application.
- Le dossier
backendcontient aussi un fichierrequests.httpavec des exemples de requêtes HTTP que vous pouvez tester pendant l’atelier.
Travail à faire
Lisez le code du projet exemple-vue-router afin de comprendre comment les routes sont configurées et utilisées.
Pendant votre lecture :
- exécutez l’application dans le navigateur ;
- naviguez entre les différentes vues ;
- démarrez le backend ;
- exécutez les tests afin de mieux comprendre le rôle de chaque fichier.
Recherche de fichiers dans VSCode
Pour rechercher rapidement un fichier dans VSCode, utilisez Ctrl+P, puis tapez son nom.
Pour rechercher un fichier situé dans un dossier précis, tapez le nom du dossier suivi d’un slash /, puis le nom du fichier.
Exemples :
router/index.tsservices/postsService.ts
Fichiers à consulter
-
scripts/main.ts -
scripts/post.ts -
router/index.ts -
router/routes.ts -
services/postsService.ts -
App.vue -
NavigationBar.vueetNavigationBar.test.ts -
AboutView.vue -
NotFoundView.vue -
PostsView.vue -
ConfirmModal.vueetConfirmModal.test.ts -
PostDetailView.vue
Remise
Aucune remise n’est demandée pour cet atelier.