1.事件监听

  • v-on:eventName可以简写成@eventName
  • 事件对象:在HTML中,事件参数为$event,但是即使不传递,在回调函数中也可以直接使用event读取
<div id="app">
<button v-on:click="test">点我</button>
<button v-on:click="test2('hello vue')">点我2</button>
<button v-on:click="test3($event)">点我3</button>
<button v-on:click="test4">点我4</button> <button @click="test">点我</button>
<button @click="test2('hello vue')">点我2</button>
<button @click="test3($event)">点我3</button>
<button @click="test4">点我4</button>
</div>
methods: {
test() {
console.log('hi');
},
test2(content) {
console.log(content);
},
test3(event) {
console.log(event.target);
},
test4(){
//即使不传$event,在回调函数中也可以使用event这个参数
console.log(event.target.innerText);
}
}
  • 常见的事件类型
事件 说明
@click 点击事件
@keyup 键盘事件
@input 输入框输入事件
@change 输入框change事件
@transitionstart 过渡开始事件
@transitionend 过渡结束事件
@animationstart 动画开始事件
@animationend 动画结束事件

2.事件修饰符

  • 事件修饰符用来控制事件的冒泡和默认行为,常用共有几个:
修饰符 作用
stop 阻止事件冒泡
prevent 阻止默认事件
self 事件源是自身时才触发,通俗的话,冒泡传递过来的事件不会触发
capture 使用捕获机制
once 只会执行一次
passive -
native 原生事件修饰符,用于监听原生HTML的事件
<!-- 阻止事件冒泡 -->
<div id="big" @click="test">
<div id="small" @click.stop="test2"></div>
</div>
<!-- 阻止默认事件,点击a链接不会发生跳转,只会执行test方法的代码 -->
<a href="https://www.baidu.com/" @click.prevent="test">百度一下</a>
  • 修饰符可以串联
<a v-on:click.stop.prevent="doThat"></a>

3.按键修饰符

  • 如果要监听某个具体的按键,可以使用按键码,例如:
<!-- 只有回车键按下的时候才会触发回调函数 -->

<!--使用按键码,回车键的keyCode是13 -->
<textarea @keyup.13="testKeyup"></textarea>
  • 针对常见的按键,Vue预定义了按键修饰符
按键修饰符 对应按键
enter 回车
tab tab
delete “删除”和“退格”键
esc esc
space 空格
up 方向-上
down 方向-下
left 方向-左
right 方向-右
<!--使用按键修饰符 回车键的按键修饰符为enter -->
<textarea @keyup.enter="testKeyup"></textarea>
  • 其余按键可以用按键码,或者自定义按键修饰
//自定义按键修饰(q的keyCode是81)
Vue.config.keyCodes.q=81
<input type="text" value="hello" @keyup.q="test">
<input type="text" value="hello" @keyup.81="test">

4.鼠标按钮修饰符(2.2.0 新增)

  • 监听鼠标右键的点击事件
<button @click.right.prevent="throttle_click">点我</button>
  • 监听鼠标中键的点击事件
<button @click.middle.prevent="throttle_click">点我</button>

5.系统修饰键

  • 可以用如下修饰符来实现仅在按下相应按键时才触发鼠标或键盘事件的监听器
修饰键 对应按键
ctrl ctrl
alt alt
shift shift
  • 示例(不常用,不做测试,直接贴官方的示例)
<!-- Alt + C -->
<input v-on:keyup.alt.67="clear"> <!-- 按下Ctrl键 + Click -->
<div v-on:click.ctrl="doSomething">Do something</div>
  • exact 修饰符 (2.5.0 新增):用来精确的系统修饰符组合触发的事件(不常用,不做测试,直接贴官方的示例)
<!-- 即使 Alt 或 Shift 被一同按下时也会触发 -->
<button v-on:click.ctrl="onClick">A</button> <!-- 有且只有 Ctrl 被按下的时候才触发 -->
<button v-on:click.ctrl.exact="onCtrlClick">A</button> <!-- 没有任何系统修饰符被按下的时候才触发 -->
<button v-on:click.exact="onClick">A</button>

Vue.js 事件绑定的更多相关文章

  1. Vue.js双向绑定的实现原理和模板引擎实现原理(##########################################)

    Vue.js双向绑定的实现原理 解析 神奇的 Object.defineProperty 这个方法了不起啊..vue.js和avalon.js 都是通过它实现双向绑定的..而且Object.obser ...

  2. 原生JS事件绑定方法以及jQuery绑定事件方法bind、live、on、delegate的区别

    一.原生JS事件绑定方法: 1.通过HTML属性进行事件处理函数的绑定如: <a href="#" onclick="f()"> 2.通过JavaS ...

  3. js事件绑定细节说明

    javascript绑定事件: 经常用jQuery去写,时间长了对原生态的js事件绑定的知识会慢慢淡化或者遗忘了,必须翻出来再次总结,今天再次把js原生态事件的处理做个总结. 从最初开始,谁刚接触ja ...

  4. js事件绑定的几种方式与on()、bind()的区别

    版权声明:本文为博主原创文章,未经博主允许不得转载 一直不是很理解几种js事件绑定之间的区别与联系,今天百度了一下,在此做一总结: 1.如果只是简单的绑定一个事件,可以直接写在行内,点击执行一个函数, ...

  5. js课程 5-13 js事件绑定和鼠标事件注意事项有哪些

    js课程 5-13  js事件绑定和鼠标事件注意事项有哪些 一.总结 一句话总结:js代码的灵魂就是改变标签的属性和样式,就这两种. 1.js触发改的东西是哪两样? 属性和样式 2.js如何让页面用标 ...

  6. vue.js样式绑定

    vue.js样式绑定 class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性. Vue.js v-bind 在处理 class 和 styl ...

  7. 10.Vue.js 样式绑定

    Vue.js 样式绑定 Vue.js class class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性. Vue.js v-bind 在处 ...

  8. DOM(原生js事件绑定)

    一:原生js事件绑定 1.开关灯案例 <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  9. [js高手之路] vue系列教程 - vue的事件绑定与方法(2)

    一.在vue中,绑定事件,用v-on:事件类型, 如绑定一个点击事件, 我们可以这样子做 window.onload = function () { var c = new Vue({ el : 'b ...

  10. Vue.js双向绑定的实现原理

    Vue.js最核心的功能有两个,一是响应式的数据绑定系统,二是组件系统.本文仅探究几乎所有Vue的开篇介绍都会提到的hello world双向绑定是怎样实现的.先讲涉及的知识点,再参考源码,用尽可能少 ...

随机推荐

  1. Python网页应用开发神器Dash 2.18.1稳定版本来啦

    本文示例代码已上传至我的Github仓库:https://github.com/CNFeffery/dash-master Gitee同步仓库地址:https://gitee.com/cnfeffer ...

  2. PyCharm 的一些基本设置&&常用插件&&快捷键

    PyCharm一些基本设置   1.主题色彩   2.添加设置:Ctrl+鼠标滚轮上下调节字体大小           3. 中文语言包   4.翻译插件 5.快捷键

  3. pytorch中LSTM各参数理解

    nn.LSTM(input_dim,hidden_dim,nums_layer,batch_first) 各参数理解: input_dim:输入的张量维度,表示自变量特征数 hidden_dim:输出 ...

  4. 3. 无重复字符的最长子串 Golang实现

    题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串的长度. 注意区分子串和子序列. 示例 3: 输入: s = "pwwkew" 输出: 3 解释: 因为无重复 ...

  5. 《MySQL 5.7从入门到精通(视频教学版)》代码课件教学视频下载

    <MySQL 5.7从入门到精通(视频教学版)>代码课件教学视频下载 https://pan.baidu.com/s/1ZufDV6a_PEnjp-Bdh4IkuQ 提取码:vgnr 无版 ...

  6. 自己动手,通过源码找回 Ant-Design-Blaozr 中 Tree 组件的搜索筛选效果

    最近更新一个Blazor server的项目,顺带把用到的Ant-Design-Blazor 升级到了最新的 0.14.4,结果发现之前在 0.8.4 版本中 Tree 组件的搜索显示效果变了,从仅显 ...

  7. 墨天轮沙龙 | 腾讯云陈昊:TDSQL-C Serverless应用与技术实践

    导读 数据库的发展由对性能的要求,逐步发展为对更为极致成本的要求,Serverless数据库是在高性能云数据库之上的极致成本优化方案.[墨天轮数据库沙龙-Serverless专场]邀请到腾讯云数据库产 ...

  8. sqlSugar 使用原生模式链接数据库

    using System.Reflection; using zhulongxu_webapi_pro.Tools; namespace zhulongxu_webapi_pro.Services { ...

  9. 通过python提取csv文件中包含某个关键字的单元格

    通过python提取csv文件中包含某个关键字的单元格 def search(lines, pattern): previous_lines = [] for li in lines: if patt ...

  10. 这十年我与广告不共戴天练就的十八般武艺 #PC去广告 #手机去广告

    背景 大家应该都体会过广告的苦恼,比如看着好看的电视,突然给播放广告,这时候痛苦系数飙升.随着社会进步,广告的载体,还有形式也越来越多,比如手机端各种APP启动广告,PC端软件弹窗,网站Banner等 ...