Vue3 : gestion des événements
Nous pouvons utiliser la directive v-on pour écouter les événements DOM et exécuter du code JavaScript.
v-onLa directive peut être abrégée par le@symbole.
Format de syntaxe:
v-on:click="methodName" ou @click="methodName"
v-on
Essayez-le »
Habituellement, nous devons utiliser une méthode pour appeler une méthode JavaScript.
v-on peut accepter une méthode définie à appeler.
v-on
Essayez-le »
En plus de lier directement à une méthode, vous pouvez également utiliser des instructions JavaScript en ligne :
v-on
Essayez-le »
Les gestionnaires d'événements peuvent contenir plusieurs méthodes, séparées par l'opérateur virgule :
v-on
Essayez-le »
Modificateurs d'événement
Vue.js fournit des modificateurs d'événements pour v-on afin de gérer les détails des événements DOM, tels que event.preventDefault() ou event.stopPropagation().
Vue.js, via le point.représentant le suffixe de directive, invoque les modificateurs.
.stop- Arrêter la propagation.prevent- Empêcher l'événement par défaut.capture- Arrêter la capture.self- Écouter uniquement les événements qui se déclenchent sur cet élément.once- Déclencher une seule fois.left- Événement de clic gauche.right- Événement de clic droit.middle- Événement de la molette de défilement centrale
<!-- 阻止单击事件冒泡 --> <a v-on:click.stop="doThis"></a> <!-- 提交事件不再重载页面 --> <form v-on:submit.prevent="onSubmit"></form> <!-- 修饰符可以串联 --> <a v-on:click.stop.prevent="doThat"></a> <!-- 只有修饰符 --> <form v-on:submit.prevent></form> <!-- 添加事件侦听器时使用事件捕获模式 --> <div v-on:click.capture="doThis">...</div> <!-- 只当事件在该元素本身(而不是子元素)触发时触发回调 --> <div v-on:click.self="doThat">...</div> <!-- click 事件只能点击一次,2.1.4版本新增 --> <a v-on:click.once="doThis"></a>
Modificateurs de touches
Vue permet d'ajouter des modificateurs de touches à v-on lors de l'écoute d'événements clavier :
<!-- 只有在 keyCode 是 13 时调用 vm.submit() --> <input v-on:keyup.13="submit">
Il est difficile de se souvenir de tous les keyCodes, donc Vue fournit des alias pour les touches les plus couramment utilisées :
<!-- 同上 --> <input v-on:keyup.enter="submit"> <!-- 缩写语法 --> <input @keyup.enter="submit">
Tous les alias de touches :
.enter.tab.delete(Capture les touches « Delete » et « Backspace »).esc.space.up.down.left.right
Touches de modification système :
.ctrl.alt.shift.meta
Modificateurs de bouton de souris :
.left.right.middle
Exemple
<input @keyup.alt.67="clear">
<!-- Ctrl + Click -->
<div @click.ctrl="doSomething">Faire quelque chose</div>
Modificateur .exact
.exactLe modificateur permet de contrôler les événements déclenchés par une combinaison exacte de modificateurs système.
Exemple
<button @click.ctrl="onClick">A</button>
<!-- Déclenché si et seulement si Ctrl est enfoncé -->
<button @click.ctrl.exact="onCtrlClick">A</button>
<!-- Déclenché uniquement lorsqu'aucun modificateur système n'est enfoncé -->
<button @click.exact="onClick">A</button>