Vue.js 事件绑定
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 事件绑定的更多相关文章
- Vue.js双向绑定的实现原理和模板引擎实现原理(##########################################)
Vue.js双向绑定的实现原理 解析 神奇的 Object.defineProperty 这个方法了不起啊..vue.js和avalon.js 都是通过它实现双向绑定的..而且Object.obser ...
- 原生JS事件绑定方法以及jQuery绑定事件方法bind、live、on、delegate的区别
一.原生JS事件绑定方法: 1.通过HTML属性进行事件处理函数的绑定如: <a href="#" onclick="f()"> 2.通过JavaS ...
- js事件绑定细节说明
javascript绑定事件: 经常用jQuery去写,时间长了对原生态的js事件绑定的知识会慢慢淡化或者遗忘了,必须翻出来再次总结,今天再次把js原生态事件的处理做个总结. 从最初开始,谁刚接触ja ...
- js事件绑定的几种方式与on()、bind()的区别
版权声明:本文为博主原创文章,未经博主允许不得转载 一直不是很理解几种js事件绑定之间的区别与联系,今天百度了一下,在此做一总结: 1.如果只是简单的绑定一个事件,可以直接写在行内,点击执行一个函数, ...
- js课程 5-13 js事件绑定和鼠标事件注意事项有哪些
js课程 5-13 js事件绑定和鼠标事件注意事项有哪些 一.总结 一句话总结:js代码的灵魂就是改变标签的属性和样式,就这两种. 1.js触发改的东西是哪两样? 属性和样式 2.js如何让页面用标 ...
- vue.js样式绑定
vue.js样式绑定 class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性. Vue.js v-bind 在处理 class 和 styl ...
- 10.Vue.js 样式绑定
Vue.js 样式绑定 Vue.js class class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性. Vue.js v-bind 在处 ...
- DOM(原生js事件绑定)
一:原生js事件绑定 1.开关灯案例 <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- [js高手之路] vue系列教程 - vue的事件绑定与方法(2)
一.在vue中,绑定事件,用v-on:事件类型, 如绑定一个点击事件, 我们可以这样子做 window.onload = function () { var c = new Vue({ el : 'b ...
- Vue.js双向绑定的实现原理
Vue.js最核心的功能有两个,一是响应式的数据绑定系统,二是组件系统.本文仅探究几乎所有Vue的开篇介绍都会提到的hello world双向绑定是怎样实现的.先讲涉及的知识点,再参考源码,用尽可能少 ...
随机推荐
- AI实战 | 领克汽车线上营销助手:全面功能展示与效果分析
助手介绍 我就不自我介绍了,在我的智能体探索之旅中,很多人已经通过coze看过我的教程.今天,我专注于分享我所开发的一款助手--<领克汽车线上营销>. 他不仅仅是一个销售顾问的替身,更是一 ...
- SQL Server Temporary Table & Table Variable (临时表和表变量)
参考: 在数据库中临时表什么时候会被清除呢 Temporary Tables And Table Variables In SQL 基本常识 1. 局部临时表(#开头)只对当前连接有效,当前连接断开时 ...
- [OI] Testlib
Testlib 是用于实现 SpecialJudge 的一种方式 为了使用 Testlib,你需要在你的文件中引用 Testlib.h testlib.h 下载 使用 Testlib 程序 以 Tes ...
- 完美转发(模板)--T&&
在C++模板编程中,完美转发(Perfect Forwarding)是一种技术,旨在保留函数参数的值类别,即在将参数传递到另一个函数时,无论参数是左值还是右值,都能够保持它的原始性质,而不会因为转发丢 ...
- 对于ChannelNet的一点理解
主要是为了个人理解,做个笔记 1.Pytorch代码 2.论文出处 3.详细介绍 这篇论文在2018年发出来,而ShuffleNet是从2017年由旷视发出来.起初了解shufflenet的提出,主要 ...
- Eigen矩阵除法
看了网上很多帖子,很多都没有说Eigen如何做矩阵除法.我这里补充一下.其他运算一般都可以查到: 对于Matrix来说,我们需要先将其转换成数组,因为Eigen矩阵不能做除法(很烦). 比如我们一个2 ...
- 谈一谈 vuex 的运行机制
Vuex提供数据(state)来驱动视图(vue components),通过dispath派发actions,在其中可以做一些异步的操作,然后通过commit来提交mutations,最后mutat ...
- 46.使用过vuex和vue-router吗
使用过,vuex是状态管理工具,它的数据可以被所有的组件获取,方法可以被所有的组件调用 : vuex 的内部的运行机制:state提供了数据驱动视图,dispath派发actions 执行异步操作, ...
- KubeSphere 部署 Kafka 集群实战指南
本文档将详细阐述如何利用 Helm 这一强大的工具,快速而高效地在 K8s 集群上安装并配置一个 Kafka 集群. 实战服务器配置(架构 1:1 复刻小规模生产环境,配置略有不同) 主机名 IP C ...
- 使用 OpenFunction 在任何基础设施上运行 Serverless 工作负载
作者: 霍秉杰:KubeSphere 可观测性.边缘计算和 Serverless 团队负责人,Fluent Operator 和 OpenFunction 项目的创始人,还是多个可观测性开源项目包括 ...