vue 事件处理

  vue使用v-on指令监听DOM事件,之前我们有用过v-on指令实现增加数字的需求,我们把那个例子改改拿出来:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue事件处理</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.22/dist/vue.js"></script>
    <style>
        .hellofont{
            font-size: 20px;
            color: pink;
            font-weight: bold; 
        }
        .num0{
            font-size: 18px;
            color: green;
            font-weight: bold; 
        }
    </style>
</head>
<body>
    <div class="myApp">
        <p>{{num}}</p>
        <button v-on:click="plusOne()">数字加一</button>
    </div>
    
    
    <script>
        var myApp = new Vue({
            el: '.myApp',
            data: {
                num: 0
            },
            methods: {
                plusOne: function(){
                    this.num ++;
                }
            }
        });
    </script>
</body>
</html>

  上面是v-on最基础的使用方法,此外v-on还有修饰符。

  先来看看事件修饰符:.stop、.preventcapture.self.once.passive,我们引用一下官网的例子:

<!-- 阻止单击事件继续传播 -->
<a v-on:click.stop="doThis"></a>

<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form>

<!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThat"></a>

<!-- 只有修饰符 -->
<form v-on:submit.prevent></form>

<!-- 添加事件监听器时使用事件捕获模式 -->
<!-- 即元素自身触发的事件先在此处理,然后才交由内部元素进行处理 -->
<div v-on:click.capture="doThis">...</div>

<!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
<!-- 即事件不是从内部元素触发的 -->
<div v-on:click.self="doThat">...</div>

  使用事件修饰符时,顺序很重要;相应的代码会以同样的顺序产生。因此,用 v-on:click.prevent.self 会阻止所有的点击,而 v-on:click.self.prevent 只会阻止对元素自身的点击。

  此外还有按键修饰符,以下是常用的按键码的别名:.enter、.tab.delete (捕获“删除”和“退格”键)、.esc.space.up.down.left.right。

  系统修饰符.ctrl、.alt.shift.meta。注意:在 Mac 系统键盘上,meta 对应 command 键 (⌘)。在 Windows 系统键盘 meta 对应 Windows 徽标键 (⊞)。在 Sun 操作系统键盘上,meta 对应实心宝石键 (◆)。在其他特定键盘上,尤其在 MIT 和 Lisp 机器的键盘、以及其后继产品,比如 Knight 键盘、space-cadet 键盘,meta 被标记为“META”。在 Symbolics 键盘上,meta 被标记为“META”或者“Meta”。

  .exact 修饰符允许你控制由精确的系统修饰符组合触发的事件。

  鼠标按键修饰符.left、.right.middle

 

posted @ 2019-02-18 14:25  姜腾腾  阅读(1236)  评论(0编辑  收藏  举报