webveuje/vue/事件.md
2020-12-23 10:29:16 +08:00

116 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# vue 方法(事件处理)
### 事件监听
可以用v-on指令监听DOM事件并在触发时运行一些javascript v-on 简写为@
事件处理方法
- 直接触发javascript代码(不推荐)
示例:
```
<div id="app" >
<button v-on:click="alert('hello!!!')">测试</button>
</div>
```
- 在内联javascript 语句中调用方法(不推荐)
```
<div id="example-3">
<button v-on:click="say()">Say hi</button>
</div>
```
```
new Vue({
el: '#example-3',
methods: {
say: function () {
alert('hi')
}
}
})
```
- 事件处理方法(推荐)
```
<div id="app" >
<button v-on:click="say">测试</button>
</div>
```
```
new Vue({
el: '#example-3',
methods: {
say: function () {
alert('hi')
}
}
})
```
> methods中注册的是触发时执行的函数也叫方法
### 事件修饰符
- `.stop`
> 等同于JavaScript中的event.stopPropagation(),防止事件冒泡
- `.once`
> 只会触发一次
使用:
```
<a v-on:click.stop="doThis"></a>
```
可以同时使用多个修饰符
```
<a v-on:click.stop.once="doThat"></a>
```
### 按键修饰符(自行拓展)
监听键盘事件:
@keydown(键盘按下时触发),@keypress(键盘按住时触发)@keyup(键盘弹起)
```
获取按键的键码 e.keyCode
@keyup.delete 删除键
@keyup.enter 回车
@keyup.esc ESC
@keyup.space 空格
@keyup.tab TAB
@keyup.left 左键
@keyup.right 右键
@keyup.up 上键
@keyup.down 下键
```