116 lines
1.6 KiB
Markdown
116 lines
1.6 KiB
Markdown
# 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 下键
|
||
```
|
||
|