1. 程式人生 > >vue修飾符

vue修飾符

span 修飾符 執行順序 而不是 冒泡 點擊 不執行 spa 第一次

<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修飾符