Gestionnaires d'événements Vue.js
L'écoute des événements peut utiliser la directive v-on :
v-on
Essayez-le vous-même »
Habituellement, nous devons utiliser une méthode pour appeler une méthode JavaScript.
v-on peut accepter une méthode définie à invoquer.
v-on
Essayez-le vous-même »
En plus de lier directement à une méthode, vous pouvez également utiliser des instructions JavaScript en ligne :
v-on
Essayez-le vous-même »
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 utilise le point.comme suffixe de directive pour invoquer des modificateurs.
.stop- Empêcher la propagation.prevent- Empêcher l'événement par défaut.capture- Empêcher la capture.self- N'écouter que 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 souris (bouton du milieu)
<!-- 阻止单击事件冒泡 --> <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">
Se souvenir de tous les keyCodes est difficile, c'est pourquoi 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.ctrl.alt.shift.meta
Exemple
<p><!-- Alt + C --> <input @keyup.alt.67="clear"> <!-- Ctrl + Click --> <div @click.ctrl="doSomething">Do something</div>Autres extensions