Vue : construire une application web (école d'ingénieur) · Chapitre 8 · Application directe du cours
La largeur de la fenêtre
Cycle de vie et composables · niveau 2
Énoncé
Écrire un composable useLargeurFenetre() qui rend la largeur de la fenêtre, tenue à jour, et un booléen qui dit si elle est sous 768 pixels. Quel crochet ajoute l'écouteur, lequel le retire ?
Corrigé
import { computed, onMounted, onUnmounted, ref } from "vue";
/** La largeur de la fenêtre, et si elle est sous 48rem (768 px). */
export function useLargeurFenetre() {
const largeur = ref(window.innerWidth);
const mettreAJour = () => (largeur.value = window.innerWidth);
onMounted(() => window.addEventListener("resize", mettreAJour));
onUnmounted(() => window.removeEventListener("resize", mettreAJour));
const estMobile = computed(() => largeur.value < 768);
return { largeur, estMobile };
}
À 600, puis 375, puis 1024 pixels de large :
600 px : affichage téléphone
375 px : affichage téléphone
1024 px : affichage large
onMounted ajoute l'écouteur, onUnmounted le retire. Pour une simple mise en page, une requête média CSS suffit (livre CSS) ; ce composable sert quand le code doit changer, par exemple pour afficher un composant différent sur téléphone.
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.