Séance 1 : Introduction & rappel Vue
🎯 Objectifs
📖 Partie théorique
Directives Vue et structure de projet
Directives Vue de base
<template>
<div>
<!-- v-if : affichage conditionnel -->
<p v-if="user.isLoggedIn">Bienvenue {{ user.name }} !</p>
<p v-else>Veuillez vous connecter</p>
<!-- v-show : visibilité conditionnelle (CSS display) -->
<div v-show="showDetails" class="details">Détails supplémentaires</div>
<!-- v-for : boucles -->
<ul>
<li v-for="task in tasks" :key="task.id">
{{ task.title }} - {{ task.status }}
</li>
</ul>
<!-- v-model : liaison bidirectionnelle -->
<input v-model="searchQuery" placeholder="Rechercher...">
<p>Recherche : {{ searchQuery }}</p>
<!-- v-bind (:) : liaison d'attributs -->
<button
:class="{ active: isActive, disabled: isDisabled }"
:disabled="isDisabled"
@click="toggleActive"
>
{{ isActive ? 'Actif' : 'Inactif' }}
</button>
<!-- v-on (@) : gestion d'événements -->
<button @click="handleClick" @keyup.enter="handleEnter">
Cliquer ou Entrée
</button>
</div>
</template>
<script setup>
import { ref, reactive } from 'vue'
const user = reactive({
isLoggedIn: true,
name: 'Alice'
})
const showDetails = ref(false)
const searchQuery = ref('')
const isActive = ref(false)
const isDisabled = ref(false)
const tasks = ref([
{ id: 1, title: 'Tâche 1', status: 'En cours' },
{ id: 2, title: 'Tâche 2', status: 'Terminée' }
])
const toggleActive = () => {
isActive.value = !isActive.value
}
const handleClick = () => {
console.log('Bouton cliqué')
}
const handleEnter = () => {
console.log('Entrée pressée')
}
</script>Rappel Vue 3 : Composition API
ref() - Réactivité pour les primitives
reactive() - Réactivité pour les objets
computed() - Propriétés calculées
watch() - Surveillance des changements
Cycle de vie des composants
Props, emits et slots
Props - Transmission de données du parent vers l'enfant
Emits - Remontée d'événements de l'enfant vers le parent
Slots - Injection de contenu personnalisé
Communication entre composants - Résumé
Bonnes pratiques
Organisation du code
Conventions de nommage
Performance et réactivité
Gestion des erreurs
Accessibilité et UX
📝 Travaux pratiques
Objectif
Étape 1 : Initialisation du projet
Étape : Test et amélioration
Last updated