7.事件的基本使用
1.1 事件的基本用法
- 使用v-on:xxx或@xxx绑定事件,其中 xxx 是事件名
- 事件的回调需要配置在methods对象中,最终会在vm上
- methods中配置的函数,不要用箭头函数,否则 this 就不是vm了
- methods中配置的函数,都是被 Vue所管理的函数,this 的指向是vm或组件实例对象
- @click=”demo”和@click=”demo($event)”效果一致,但后者可以传参
1 |
|
1.2 事件修饰符
1.2.1 Vue中的事件修饰符
- prevent 阻止默认事件(常用)
- stop 阻止事件冒泡(常用)
- once 事件只触发一次(常用)
- capture 使用事件的捕获模式
- self 只有event.target是当前操作的元素时才触发事件
- passive 事件的默认行为立即执行,无需等待事件回调执行完毕
修饰符可以连续写,比如可以这么用:@click.prevent.stop=”showInfo”
代码:
1 |
|
1.3 键盘事件
键盘上的每个按键都有自己的名称和编码,例如:Enter(13)。而Vue还对一些常用按键起了别名方便使用
- Vue中常用的按键别名
- 回车
enter - 删除
delete捕获“删除”和“退格”键 - 退出
esc - 空格
space - 换行
tab特殊,必须配合keydown去使用 - 上
up - 下
down - 左
left - 右
right - 如果需要使用其他按键,可以使用keyCode去指定具体的按键(不推荐),而且Vue中的keyCode是小写的
Vue未提供别名的按键,可以使用按键原始的key值去绑定,但注意要转为kebab-case(多单词小写短横线写法)
系统修饰键(用法特殊)
ctr、alt、shift、meta(meta就是win键)
(1). 配合keyup使用:按下修饰键的同时,再按下其他键,随后释放其他键,事件才被触发
指定ctr+y使用@keyup.ctr.y
(2). 配合keydown使用:正常触发事件- 也可以使用keyCode去指定具体的按键(不推荐)
- Vue.config.keyCodes.自定义键名 = 键码,可以去定制按键别名
代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<html>
<head>
<meta charset="UTF-8" />
<title>键盘事件</title>
<!-- 引入Vue -->
<script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<!-- 准备好一个容器 -->
<div id="root">
<h2>欢迎打开{{name}}笔记</h2>
<input type="text" placeholder="按下回车提示输入" @keyup.enter="showInfo"><br/>
<input type="text" placeholder="按下tab提示输入" @keydown.tab="showInfo"><br/>
<input type="text" placeholder="按下回车提示输入" @keydown.huiche="showInfo"><br/>
</div>
<script type="text/javascript">
Vue.config.productionTip = false // 阻止 vue 在启动时生成生产提示。
Vue.config.keyCodes.huiche = 13 // 定义了一个别名按键
new Vue({
el: '#root',
data: {
name: 'cess'
},
methods: {
showInfo(e) {
//if(e.keycode === 13) return //如果不是回车键,直接return,不执行后面的代码,也可以在input标签上加上@keyup.enter,效果一样,只是两种写法不同
// console.log(e.key,e.keyCode)
console.log(e.target.value)
}
},
})
</script>
</body>
</html>








