Vue : construire une application web (école d'ingénieur) · Chapitre 8 · Application directe du cours
Un booléen réutilisable
Cycle de vie et composables · niveau 1 (application)
Énoncé
Écrire un composable useBascule(initial) qui rend un booléen et trois fonctions pour le basculer, l'activer, le désactiver. L'utiliser pour un bouton « Voir plus » / « Voir moins » qui montre les détails d'un livre, avec aria-expanded.
Corrigé
import { ref } from "vue";
/** Un booléen et les trois façons de le changer. */
export function useBascule(initial = false) {
const etat = ref(initial);
const basculer = () => (etat.value = !etat.value);
const activer = () => (etat.value = true);
const desactiver = () => (etat.value = false);
return { etat, basculer, activer, desactiver };
}
<script setup>
import { useBascule } from "../composables/useBascule.js";
const { etat: details, basculer } = useBascule();
</script>
<template>
<h2>Programmation Java</h2>
<button
type="button"
:aria-expanded="details"
aria-controls="details"
@click="basculer"
>
{{ details ? "Voir moins" : "Voir plus" }}
</button>
<p
v-show="details"
id="details"
>
16 chapitres, 174 exercices corrigés.
</p>
</template>
Avant et après un clic :
Voir plus (aria-expanded=false), détails visibles : false
Voir moins (aria-expanded=true), détails visibles : true
La déstructuration renomme etat en details : comme le composable rend des refs, le nom local reste réactif.
100 % gratuit
La suite du chapitre est sur Adloun
- 9 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.