Guide
Essentiel
- Installation
- Introduction
- Instance de Vue
- Syntaxe de template
- Propriétés calculées et observateurs
- Liaisons de classes et de styles
- Rendu conditionnel
- Rendu de liste
- Gestion des évènements
- Liaisons sur les champs de formulaire
- Composants
Composants en détail
- Création de composants
- Props
- Évènements personnalisés
- Slots
- Composants dynamiques et asynchrones
- Gérer les cas limites
Transitions & animation
- Transitions d'entrée, de sortie et de liste
- Transitions d'état
Réutilisabilité & composition
- Mixins
- Directives personnalisées
- Fonctions de rendu et JSX
- Plugins
- Filtres
Outils
- Composants monofichiers
- Testing
- Support de TypeScript
- Déploiement en production
Évolutions
- Routage
- Gestion de l'état
- Rendu côté serveur
- Security
Mécanismes
- Réactivité en détail
Migration
- Migration depuis Vue 1.x
- Migration depuis Vue Router 0.7.x
- Migration depuis Vuex 0.6.x à 1.0
Meta
- Comparaison avec les autres frameworks
- Rejoignez la communauté Vue.js !
- Rencontrer l'équipe
You’re browsing the documentation for v2.x and earlier. For v3.x, click here.
Gestion des évènements
Écouter des évènements
Nous pouvons utiliser l’instruction v-on
pour écouter les évènements du DOM afin d’exécuter du JavaScript lorsque ces évènements surviennent.
Par exemple :
|
|
Résultat :
Le bouton ci-dessus a été cliqué {{ counter }} fois.
Méthodes des gestionnaires d’évènements
La logique avec beaucoup de gestionnaires d’évènements sera très certainement plus complexe, par conséquent, garder votre JavaScript dans la valeur de l’attribut v-on
ne sera tout simplement pas faisable. C’est pourquoi v-on
peut aussi accepter le nom d’une méthode que vous voudriez appeler.
Par exemple :
|
|
Résultat :
Méthodes appelées dans les valeurs d’attributs
Au lieu de lier directement la méthode par son nom dans l’attribut, nous pouvons également utiliser des méthodes dans une instruction JavaScript :
|
|
Résultat:
Parfois nous avons également besoin d’accéder à l’évènement original du DOM depuis l’instruction dans l’attribut. Vous pouvez le passer à une méthode en utilisant la variable spéciale $event
:
|
|
Modificateurs d’évènements
C’est un besoin courant que de faire appel à event.preventDefault()
ou event.stopPropagation()
à l’intérieur d’une déclaration de gestionnaire d’évènements. Bien que nous puissions réaliser ceci aisément à l’intérieur des méthodes, il serait préférable que les méthodes restent purement dédiées à la logique des données au lieu d’avoir à gérer les détails des évènements du DOM.
Pour résoudre ce problème, Vue propose des modificateurs d’évènements pour v-on
. Rappelez-vous que les modificateurs sont des suffixes de directives indiqués par un point.
.stop
.prevent
.capture
.self
.once
.passive
|
L’ordre a de l’importance quand vous utilisez des modificateurs car le code est généré dans le même ordre. Aussi utiliser v-on:click.prevent.self
va empêcher tous les clics alors que v-on:click.self.prevent
va uniquement empêcher le clic sur l’élément lui-même.
Nouveau dans la 2.1.4+
|
Contrairement aux autres modificateurs, qui sont exclusifs aux évènements natifs du DOM, le modificateur .once
peut également être utilisé pour les évènements des composants. Si vous n’avez pas encore lu la section concernant les composants, ne vous en inquiétez pas pour le moment.
Nouveau en 2.3.0+
Vue offre également un modificateur .passive
correspondant à l’option passive
de addEventListener
.
|
Le modificateur .passive
est particulièrement pratique pour améliorer les performances sur mobile.
N’utilisez pas .passive
et .prevent
ensemble. .passive
sera ignoré et votre navigateur va probablement vous montrer un message. Souvenez-vous, .passive
communique au navigateur que vous ne voulez pas prévenir le comportement de l’évènement par défaut.
Modificateurs de code des touches
Lorsque nous écoutons les évènements du clavier, nous avons régulièrement besoin de nous assurer du code des touches. Vue permet également d’ajouter un modificateur de touches pour v-on
:
|
Vous pouvez également utiliser n’importe quel nom de touche clavier valide fourni par KeyboardEvent.key
en tant que modificateur en les écrivant au format kebab-case :
|
Dans l’exemple ci-dessus, le gestionnaire va uniquement être appelé si $event.key
est égale à ‘PageDown’`.
Code des touches
L’utilisation des évènements keyCode
est déprécié et pourrait ne plus être supportée dans de futurs navigateurs.
Utilisez des attributs keyCode
est également possible :
|
Vue fournit des alias pour la plupart des clés communes utilisés quand nécessaire pour le support des anciens navigateurs :
.enter
.tab
.delete
(fonctionne pour les touches « Suppression » et « Retour arrière »).esc
.space
.up
.down
.left
.right
Quelques raccourcis (.esc
et les touches fléchées) ont des key
différentes pour IE9. Vous devriez plutôt utiliser leurs alias fournis par la bibliothèque si vous souhaitez supporter IE9.
Vous pouvez également définir des raccourcis personnalisés pour vos modificateurs grâce à l’objet global config.keyCodes
:
|
Modificateurs de touches système
Nouveau dans la 2.1.0+
Vous pouvez utiliser les modificateurs suivants pour déclencher un évènement du clavier ou de la souris seulement lorsque la touche du modificateur correspondante est pressée :
.ctrl
.alt
.shift
.meta
Note: Sur les claviers Macintosh, meta est la touche commande (⌘). Sur Windows, meta est la touche windows (⊞). Sur les claviers Sun Microsystems, meta est symbolisée par un diamant plein (◆). Sur certains claviers, spécifiquement sur les claviers des machines MIT et Lisp et leurs successeurs, comme le clavier « Knight » et « space-cadet », meta est écrit « META ». Sur les claviers Symboliques, meta est étiqueté « META » ou « Meta ».
Par exemple :
|
Notez que ces modificateurs de raccourcis sont différents des modificateurs usuels utilisés avec l’évènement keyup
, ils doivent être pressés quand l’évènement est émis. En d’autres mots, keyup.ctrl
sera déclenché uniquement si vous relâchez une touche pendant que vous maintenez la touche ctrl
enfoncée. Rien ne sera déclenché si vous relâchez uniquement la touche Ctrl
. Si vous souhaitez un tel comportement, utilisez le keyCode
pour ctrl
à la place : keyup.17
.
Modificateur .exact
Nouveau dans la 2.5.0+
Le modificateur .exact
permet le contrôle de la combinaison de touches système exacte requise pour déclencher le gestionnaire d’évènements.
|
Modificateurs de boutons de la souris
Nouveau dans la 2.2.0+
.left
.right
.middle
Ces modificateurs n’autorisent la gestion de l’évènement que s’il a été déclenché par un bouton spécifique de la souris.
Pourquoi des écouteurs dans le HTML ?
Vous pourriez être inquiet du fait que l’ensemble de cette approche d’écoute d’évènements viole la bonne vieille règle de la séparation des préoccupations. Rassurez-vous - puisque toutes les fonctions et expressions sont strictement liées au « ViewModel » qui gère la vue courante, cela ne causera aucune difficulté de maintenance. En réalité, il y a plusieurs avantages à utiliser v-on
:
Il est plus facile de localiser l’implémentation des fonctions gestionnaires dans votre code JS en survolant le code HTML.
Comme vous n’avez pas à attacher manuellement les écouteurs dans votre JS, le code du « ViewModel » peut être purement logique et sans DOM. Ceci le rend plus facile à tester.
Quand un « ViewModel » est détruit, tous les écouteurs d’évènements sont automatiquement retirés. Vous n’avez pas à vous soucier de le faire vous-même.