函式去抖 debounce js事件延遲執行

2021-09-10 05:32:10 字數 590 閱讀 9402

在前端進行keyup時間去觸發搜尋時,由於事件被頻繁的觸,因而頻繁執行dom操作、資源載入等重行為,導致ui停頓甚至瀏覽器崩潰,我們需要給keyup時間做乙個延遲執行。

當呼叫函式n秒後,才會執行該動作,若在這n秒內又呼叫該函式則將取消前一次並重新計算執行時間,舉個簡單的例子,我們要根據使用者輸入做搜尋,每當使用者按下鍵盤的時候都可以取消前一次,並且只關心最後一次輸入的時間就行了。

npm i lodash -s
import debounce from "lodash/debounce";
或者不用a、b兩步操作,直接引入js庫; 

vue官網給的例子:vue官網:帶有 debounce 的 v-model移除

//html頁面

//js**

searchdebounce: debounce(function () , 500),

函式去抖debounce使用

這裡debounce是引用的lodash庫 import from lodash 下面就可以使用debounce了。場景 input框每次值改變的時候,其下面會出現乙個下拉列表 這是通過呼叫後端介面獲得的資料 但是不想每次input值改變的時候都要重複呼叫一下介面,不然介面呼叫的太頻繁,又可能導致網...

函式節流和函式去抖

在日常的開發過程中,會有這樣的場景,事件被頻繁的觸發,比如說我們的在輸入的時候監控keypress事件,在頁面滾動的時候監控頁面的滾動事件。比如我們監控頁面的resize事件,拉動視窗改變大小的時候,resize事件被頻繁的執行 事件處理函式簡單的話還好,但是如果是複雜的dom操作,可能會導致整個u...

函式節流與函式去抖

父元件通過props向子元件傳遞引數 父元件將乙個函式作為props傳遞給子元件,子元件呼叫該 函式,向父元件通訊。中間元件層層傳遞props 存在巢狀太深的問題 使用context物件 推薦 context是全域性容器,靜態屬性,使用條件 父元件要宣告自己支援context,並提供context中...