隨筆記錄1

1、在vue中,對組件事件的監聽處理要使用native來修飾,比如

<Child @click.native="onClick()" ></Child>
console.log('父');

不然在調用組件的vue中click是無法觸發的。

2、父子組件的點擊事件的觸發順序:先子後父

比如:父組件中調用

<Child @click.native="onClick()" ></Child>

子組件中再次定義點擊事件

<div id="child" @click.stop="onClick()">
console.log('子');

這樣當點擊的時候,控制檯輸出:

但是使用修飾符capture可以修改這個邏輯,顧名思義capture捕獲的意思,官方原話:

內部元素觸發的事件先在此處理,然後才交由內部元素進行處理

也就是說會先在父層進行響應,然後在傳遞到子組件,如果你再結合stop,子組件也就無法觸發了

<Child @click.native.capture="onClick()" ></Child>

當我們後面加上capture修飾符之後,再看結果:

3、passive修飾符,跟prevent相反,passive的意思是不攔截默認事件

不寫prevent不就行了嗎,爲什麼還要專門寫個passive呢?

要知道瀏覽器的內核線程在執行js的時候,只有執行到相應代碼的監聽時纔會執行相應的處理,查看有沒有preventDefault阻止默認行爲,這樣在用戶滑動的時候效率會很低,加上passive之後效率就會提高,就相當於告訴線程,你不用找了,我的程序沒有阻止默認行爲,你放心大膽的執行吧!

因爲passive和prevent是兩個完全相反的意義,所以不可以一起使用,硬要放一起,prevent就不會起作用了,也就是passive執行等級更高

經常記不住,寫一遍,加深下印象!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章