Séance 2 : Architecture et composables
🎯 Objectifs
📖 Partie théorique
Organisation du projet
Structure d'un projet Vue 3
mon-projet-vue/
├── public/ # Fichiers statiques
│ ├── index.html # Template HTML principal
│ └── favicon.ico
├── src/ # Code source
│ ├── assets/ # Ressources (images, CSS, fonts)
│ │ ├── css/
│ │ ├── images/
│ │ └── fonts/
│ ├── components/ # Composants réutilisables
│ │ ├── common/ # Composants génériques (Button, Modal)
│ │ └── features/ # Composants spécifiques (TaskCard, UserProfile)
│ ├── composables/ # Logique réutilisable (hooks)
│ │ ├── useAuth.js
│ │ ├── useApi.js
│ │ └── useTasks.js
│ ├── stores/ # Gestion d'état Pinia
│ │ ├── auth.js
│ │ ├── tasks.js
│ │ └── index.js
│ ├── services/ # Services API et logique métier
│ │ ├── api.js
│ │ ├── taskService.js
│ │ └── authService.js
│ ├── router/ # Configuration des routes
│ │ └── index.js
│ ├── views/ # Pages principales
│ │ ├── Home.vue
│ │ ├── Login.vue
│ │ └── Dashboard.vue
│ ├── utils/ # Fonctions utilitaires
│ │ ├── helpers.js
│ │ └── constants.js
│ ├── App.vue # Composant racine
│ └── main.js # Point d'entrée
├── package.json # Dépendances et scripts
├── vite.config.js # Configuration Vite
└── README.mdDossiers principaux :
Tableau de synthèse des dossiers principaux
Dossier
Rôle
Contenu
Exemple
Réutilisabilité
Gestion d'état
Détail des responsabilités
Les composables
Qu'est-ce qu'un composable ?
Exemple complet : useTasks
Utilisation du composable dans un composant
Avantages des composables
Les services
Qu'est-ce qu'un service ?
Exemples de services
Avantages des services
Design patterns
Smart vs Dumb components
Container vs Presentational Components
Avantages de ces patterns
📝 Travaux pratiques
Last updated