监听事件

事件处理方法可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。

<div id="app">
<button v-on:click="counter += 1">Add 1</button>
<p>The button above has been clicked {{ counter }} times.</p>
</div>
<script>
new Vue({
el: '#app',
data: { counter: 0 }
})
</script>

有时也需要在内联语句处理器中访问原始的 DOM 事件。可以用特殊变量 $event 把它传入方法

<div id="app">
<button v-on:click="warn('Form cannot be submitted yet.', $event)">Submit</button>
</div>
<script>
new Vue({
el:'#app',
methods:{
warn(msg,event){
if(event)event.preventDefault();
alert(msg);
}
}
})
</script>

事件修饰符

  • .stop: 阻止冒泡。
  • .prevent: 阻止默认事件。
  • .capture: 捕捉冒泡。
  • .self: 自身触发。
  • .once: 只会触发一次。
  • .native - 监听组件根元素的原生事件。
  • .passive: 告诉浏览器你不想阻止事件的默认行为。:scroll.passive = 'onScroll',滚动事件的默认行为 (即滚动行为) 将会立即触发
<!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发,而不会等待 `onScroll` 完成 -->
<!-- 不要把 .passive 和 .prevent 一起使用, -->
<div v-on:scroll.passive="onScroll">...</div>

按键修饰符

监听键盘事件时添加按键修饰符

<input type="submit" v-on:keyup.enter="submit">

按键码

按键码 键值
.enter
.tab
.delete “Del”和“Back Space”
.esc
.space
.up,.down,.left,.right 方向键

自定义按键

别名有一些按键 (.esc 以及所有的方向键) 在 IE9 中有不同的 key 值, 如果你想支持 IE9,这些内置的别名应该是首选。

//实例vm中可以用:keyup.f1="event"绑定按键f1的响应事件
vm.config.keyCodes.f1 = 112;

修饰键

修饰键与常规按键不同,在和 keyup 事件一起用时,事件触发时修饰键必须处于按下状态。

  • 按键修饰符

    按键修饰符 键值
    .ctrl
    .alt
    .shift
    .meta "window"
    .exact 精准按键修饰符
  • <!-- 只有在按住 ctrl 的情况下释放按键C,才能触发 keyup.ctrl。而单单释放 ctrl 也不会触发事件。 -->
    <input v-on:keyup.ctrl.67="clear">
    <!-- 有且只有 Ctrl 被按下的时候才触发 -->
    <button v-on:click.ctrl.exact="onCtrlClick">A</button>
  • 鼠标修饰符

    鼠标修饰符 键值
    .left
    .right
    .middle

VUE学习-监听事件的更多相关文章

  1. vue v-on监听事件

    在html或jsp页面中我们总能碰到监听DOM事件来触发javaScript代码,下面我们就简单聊聊Vue.js中的监听事件是怎么处理的. 在vue.js中监听事件是通过v-on指令来实现的,先看一下 ...

  2. vue(一)--监听事件

    1.vue-on:监听事件: demo:点击按钮,number+1 v-on 还可以缩写为 @ 2.事件修饰符 .stop:等同于JavaScript中的event.stopPropagation() ...

  3. vue之监听事件

    一.v-on 可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码. 简写形式  用@代替 v-on: <button v-on:click="co ...

  4. vue 键盘监听事件

    <template> <div class="hello"> <input v-on:keyup.enter="submit" t ...

  5. Vue 为什么在 HTML 中监听事件?

    为什么在 HTML 中监听事件? 你可能注意到这种事件监听的方式违背了关注点分离(separation of concern)传统理念.不必担心,因为所有的 Vue.js 事件处理方法和表达式都严格绑 ...

  6. Vue的watch监听事件

    Vue的watch监听事件 相关Html: <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  7. Vue自定义事件,$on(eventName) 监听事件,$emit(eventName) 触发事件

    <!--自定义事件 使用 $on(eventName) 监听事件 使用 $emit(eventName) 触发事件--> <div id="app15"> ...

  8. 安卓开发学习日记 DAY5——监听事件onClick的实现方法

    今天主要学习了监听事件的是实现方法,就是说,做了某些动作后,怎么监听这个动作并作出相应反应. 方法主要有三种: 1.匿名内部类的方法 2.独立类的方法 3.类似实现接口的方法 以下分别分析: 1.匿名 ...

  9. JAVAscript学习笔记 js句柄监听事件 第四节 (原创) 参考js使用表

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Vue子组件监听事件中传递参数的方法

    在子组件中,我们可以通过以下方式监听事件: v-on:click="$emit('funcName',a)" 如果需要传多个参数,可以通过以下方式: v-on:click=&quo ...

随机推荐

  1. [python]《Python编程快速上手:让繁琐工作自动化》学习笔记5

    1. 处理CSV文件笔记(第14章) (代码下载) 本文主要在python下介绍CSV文件,CSV 表示"Comma-Separated Values(逗号分隔的值)",CSV文件 ...

  2. P1162填涂颜色——题解

    题目描述 由数字0组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向.现要求把闭合圈内的所有空间都填写成2.例如:6×6的方阵(n=6),涂色前和涂色后的方阵如下: 0 ...

  3. 自从学习了MongoDB高可用,慢慢的喜欢上了它,之前确实冷落了

    大家好,我是哪吒,最近项目在使用MongoDB作为图片和文档的存储数据库,为啥不直接存MySQL里,还要搭个MongoDB集群,麻不麻烦? 让我们一起,一探究竟,继续学习MongoDB高可用和片键策略 ...

  4. Python邮箱推送

    利用python进行邮箱推送可以配和爬虫使用,也可以监控github上面CVE等 一个基于Python的邮箱推送脚本 需要有一个邮箱授权码不知道哪里获取可以百度就不多详细的描述了 成品: # 发送多种 ...

  5. Pytest插件pytest-assume多重断言

    Pytest插件pytest-assume多重断言 背景 import pytest def test_assume1(): assert 1 == 2 print('hello') assert 2 ...

  6. 【学习日志】volatile关键字的作用

    消除指令重排序 保证了不同线程对变量进行操作时的可见性,cpu对变量值修改后,其他线程读取变量信息时从内存读取而非cpu缓存

  7. 822. 走方格(acwing)

    题目: 先讲变量 n:右下角的x值 m:右下角的y值 ans:答案(有几种可能) a数组:用来存储向下和向右的动作. x:所在的位置的x值 y:所在位置的y值 x1:下一步可以走到位置的x值 y1:下 ...

  8. Python接口自动化测试(1)

    接口自动化测试三部曲:1.构造请求  2.判断结果  3.数据库查询 1.Python的第三方包:requests 简介:requests可以用来做接口测试.接口自动化测试.爬虫等 requests的 ...

  9. Python+chatGPT编程5分钟快速上手,强烈推荐!!!

    最近一段时间chatGPT火爆出圈!无论是在互联网行业,还是其他各行业都赚足了话题. 俗话说:"外行看笑话,内行看门道",今天从chatGPT个人体验感受以及如何用的角度来分享一下 ...

  10. 修改Element - plus的样式

    把显示再浏览器上的对应css选择器全部写上,并且添加 !important </script> <style lang='scss' scoped> //修改 element ...