以前的防抖和節流都是在js中直接書寫,後使用vue進行元件化開發之後,有些地方需要注意。
function
debounce
(func, delay)
timeout =
settimeout((
)=>
, delay)
}}
function
change
(volume, data)
,500
)}
注意
: vue中使用時,需要定義
timeout,同時在防抖函式中,this的指向發生了變化,需要在return之前獲取vue例項
。這個時候,你直接使用,還是不行的,只要debug就會發現debounce返回的func沒有進去,需要手動執行
一下(新增括號)
。
data()
}
change
(volume, data)
,500)}
,debounce
(func, delay)
context.timeout =
settimeout((
)=>
, delay)}(
)// 注意:我加了()
}
watchobj:
,500)}
}
vue 中使用防抖和節流
防抖和節流是我們在開發過程中常用優化效能的方式 那麼在 vue 中怎麼使用呢 在公共方法中 如public.js中 加入函式防抖和節流方法 防抖 export function debounce fn,delay timer settimeout function delay 節流 export f...
vue 中使用防抖和節流
防抖和節流是我們在開發過程中常用優化效能的方式 那麼在 vue 中怎麼使用呢 在公共方法中 如 public.js 中 加入函式防抖和節流方法 防抖 export function debounce fn,delay timer settimeout function delay 節流 export...
JS中使用函式防抖與函式節流
原理 觸發事件後在 n 秒內函式只能執行一次,如果在 n 秒內又觸發了事件,則會重新計算函式執行時間。簡單的說,當乙個動作連續觸發,則只執行最後一次 應用場景 1.普通js中使用 text id inp var timer null var input document.getelementbyid...