vue中的.passive修飾符

1、passive做用html

  詳情請參考MDN(https://developer.mozilla.org/zh-CN/docs/Web/API/EventTarget/addEventListener)中關於addEventListener中的第三個參數;表示 listener 永遠不會調用 preventDefault()。若是 listener 仍然調用了這個函數,客戶端將會忽略它並拋出一個控制檯警告。vue

2、原理瀏覽器

  因爲 touchstart 事件對象的 cancelable 屬性爲 true,也就是說它的默認行爲能夠被監聽器經過 preventDefault() 方法阻止,那它的默認行爲是什麼呢,一般來講就是滾動當前頁面(還多是縮放頁面),若是它的默認行爲被阻止了,頁面就必須靜止不動。但瀏覽器沒法預先知道一個監聽器會不會調用 preventDefault(),它能作的只有等監聽器執行完後再去執行默認行爲,而監聽器執行是要耗時的,有些甚至耗時很明顯,這樣就會致使頁面卡頓。視頻裏也說了,即使監聽器是個空函數,也會產生必定的卡頓,畢竟空函數的執行也會耗時。(這句話來源:https://www.cnblogs.com/ziyunfei/p/5545439.html)函數

3、vue中的passive修飾符做用性能

  該修飾符表示就是設置{passive:true},表示處理事件函數中不會調用preventDefault函數,就會減小了額外的監聽,從而提升了性能;因此不能和.prevent修飾符一同使用,不然瀏覽器會報錯。code

相關文章
相關標籤/搜索