vue修饰符

Posted fiona118

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue修饰符相关的知识,希望对你有一定的参考价值。

<body>
    <div id="app" @click.prevent=""clickme>
        <section id="section" @click.stop="clickme">
            <div id="div" @click.self="clickme">
                <span id="span" @click.capture="clickme">
                    <p id="p" @click.once="clickme">
                        用鼠标双击我,看看事件的传递真正顺序。
                    </p>
                </span>
            </div>
        </section>
        点击事件的响应顺序如下:{{message}}
    </div>
</body>

鼠标双击之后执行顺序:span->p->section->span->section

上面各个修饰符的作用:

    .prevent: 提交事件不再重载页面

    .stop: 阻止单击事件冒泡

    .self: 当事件发生在该元素本身而不是子元素的时候会触发

    .capture: 事件侦听,事件发生的时候会调用

    .once: 跟v-once作用类似,只渲染一次,第二次不会执行

 

解析:

第一次点击:span有事件监听,所以最先执行的是它,然后是事件发生的元素本身<p>,接着span执行了跳过,然后到了内层的div,由于是.self,而事件不是在div本身,所以不执行,最后到section,由于有.stop冒泡阻止,所以执行到这里就停止了。最外层的div不会执行。

span->p->section

第二次点击,同样是先到span,由于<p>是.once,只被渲染一次,所以第二次不会执行,跳过了span,跳过了div,到了section......

span->section

后面的不管多少次点击,到时出现span->section的结果。

 

本文转载:http://www.2cto.com/kf/201703/615547.html

以上是关于vue修饰符的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js 鼠标事件处理程序修饰符

Vue的修饰符 .sync

vue事件修饰符和键盘事件

Vue学习之路第八篇:事件修饰符

vue基本使用

vue的sync修饰符