简介

image.png

用法

  1. <!-- 方法处理器 -->
  2. <button v-on:click="doThis"></button>
  3. <!-- 动态事件 (2.6.0+) -->
  4. <button v-on:[event]="doThis"></button>
  5. <!-- 缩写 -->
  6. <button @click="doThis"></button>
  7. <!-- 动态事件缩写 (2.6.0+) -->
  8. <button @[event]="doThis"></button>
  9. <!-- 对象语法 (2.4.0+),同时绑定多个事件 -->
  10. <button v-on="{ mousedown: doThis, mouseup: doThat }"></button>

事件对象 Event

原生的JS,事件触发后,都会有一个Event对象,保存触发时的一些属性
image.png
1、本身方法有参数,但调用时不加参数,vue会把事件对象赋值给函数的第一个参数
2、方法想要参数,而且也想把事件对象传给方法,可以用内置的$event浏览器对象

  1. <template id="my-app">
  2. <!-- 默认传入event对象, 可以在方法中获取 -->
  3. <button @click="btn1Click">按钮1</button>
  4. <!-- $event可以获取到事件发生时的事件对象 -->
  5. <button @click="btn2Click($event, 'coderwhy', 18)">按钮2</button>
  6. </template>
  1. data() {
  2. return {
  3. message: "Hello World"
  4. }
  5. },
  6. methods: {
  7. // 默认是可以获得event对象作为参数
  8. btn1Click(event) {
  9. console.log(event);
  10. },
  11. // 若要传递多个参数,可以通过$event 获取事件对象
  12. btn2Click(event, name, age) {
  13. console.log(name, age, event);
  14. }
  15. }

事件名

修饰符

image.png

  1. <!-- 停止冒泡 (常用)-->
  2. <button @click.stop="doThis"></button>
  3. <!-- 阻止默认行为 (常用) -->
  4. <button @click.prevent="doThis"></button>
  5. <!-- 阻止默认行为,没有表达式 -->
  6. <form @submit.prevent></form>
  7. <!-- 串联修饰符 -->
  8. <button @click.stop.prevent="doThis"></button>
  9. <!-- 键修饰符,键别名 -->
  10. <input @keyup.enter="onEnter">
  11. <!-- 键修饰符,键代码 (常用,但可能会被废弃) -->
  12. <input @keyup.13="onEnter">
  13. <!-- 刷新页面前,点击回调只会触发一次(常用) -->
  14. <button v-on:click.once="doThis"></button>
  15. <!-- 监听根元素的原生事件 -->
  16. <button v-on:click.native="doThis"></button>

阻止事件冒泡 .stop

事件冒泡:例如点击,会同时触发元素的事件,和元素的子元素的事件,先从子元素事件开始执行,一层一层往上,就像冒泡

  1. <div @click="divClick">
  2. <button @click.stop="btnClick">
  3. </button>
  4. </div>
  5. <script>
  6. //@click.stop 是阻止事件冒泡,也就是点击button只会执行btnClick事件,而不会执行div的
  7. </script>

阻止默认行为 .prevent

image.png
例如表单提交按钮,会自动提交表单并跳转,而不会执行后面的我自己定义的submiClick。
而了这个修饰,就不会执行自动提交并跳转,而是执行我自己的事件,我就可重新定义如何提交数据。

监听原生事件 .native (常用于自定义组件)

image.png 这样是监听不到点击事件的
image.png 这样才能进行监听

特定按键

image.png

特定鼠标按键

image.png

特定控制按键 ctrl、alt、shift

image.png

精准控制

image.png