事件处理

1.监听事件

v-on指令监听DOM事件

2.事件处理器

<!-- $event作为第一个参数默认传入 -->
<button @click="funClick"></button>
<button @click="funClick()"></button>
<!-- 特殊变量$event传入原生DOM事件 -->
<button @click="funClick($event)"></button>
var app = new Vue({
    el: "#app",
    methods: {
        funClick: function (event) {
            alert("hello");

            if(event){
                alert(event.target.tagName);
            }
        }
    }
});

3.事件修饰符

为避免显示调用event.preventDefault()等方法,让事件处理方法保持纯粹逻辑,v-on提供了以下修饰符

  • stop
  • prevent
  • capture
  • self
  • once(事件只触发一次)
<!-- 阻止冒泡 -->
<a @click.stop="doThis"></a>
<!-- 提交事件不再重载页面 -->
<form @submit.prevent="onSubmit"></form>
<!-- 修饰符可以串联  -->
<a @click.stop.prevent="doThat"></a>
<!-- 只有修饰符 -->
<form @submit.prevent></form>
<!-- 添加事件侦听器时使用事件捕获模式 -->
<div @click.capture="doThis"></div>
<!-- 只当事件在该元素本身(比如不是子元素)触发时触发回调 -->
<div @click.self="doThat"></div>

串联修饰符要注意顺序,因为相应的代码会以同样的顺序生成

4.键盘修饰符

为监听键盘事件,v-on:key提供了keyCode和以下按键别名

  • enter
  • tab
  • delete
  • esc
  • space
  • up
  • down
  • left
  • right
<input @keyup.13="submit"/>
<input @keyup.enter="submit"/>

可通过全局config.keyCodes自定义别名

5.修饰键

鼠标键盘监听,组合监听

  • ctrl
  • alt
  • shift
  • meta
<!-- Alt + C组合 -->
<input @keyup.alt.67="clear"/>
<!-- Ctrl + Click -->
<div @click.ctrl="doSomething"></div>

鼠标行为监听

  • left
  • right
  • middle

当ViewModel被销毁时,所有事件处理器会自动删除

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 监听事件 可以用 v-on 指令监听 DOM 事件来触发一些 JavaScript 代码。 方法事件处理器 许多事...
    angelwgh阅读 2,875评论 0 0
  • “喂喂,我找到你啦,刚看完你那篇《我飞到城市的另一边,邂逅了一只没有毛的羊驼》,那只羊驼该不会是我吧。 熟悉的头像...
    留子尧阅读 2,490评论 5 4
  • getcwd() :显示是 在哪个文件里调用此文件 的目录 ----- 项目目录DIR :当前内容写在哪个文件就...
    金星show阅读 3,875评论 0 1
  • 水 很活跃 对人来说 也很冰冷 群星中 只静静地 静静地流淌……
    庞国总统阅读 2,675评论 0 3
  • 莫名的,喜欢上了搞卫生,起初是因为家中没有老人照看,回家见到杂乱的家收拾收拾,而到了后面,发现这是一件修养身心,去...
    周明1106阅读 2,990评论 1 1

友情链接更多精彩内容