記 Vue中使用防抖函式所遇見的坑

2021-10-18 07:02:09 字數 803 閱讀 5796

以前的防抖和節流都是在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...