//節流:在規定的間隔時間范圍內不會重復觸發回調,只有大於這個時間間隔才會觸發回調,把頻繁觸發變為少量觸發(1)
在 node_modules有 lodash 可以直接引入使用
// 全部引入lodash
import _ from 'lodash' (不推薦)
// 按需引入 lodash的節流方法(throttle)
import throttle from 'lodash/throttle' (推薦)
methods: {
// 開啟節流 不用使用 箭頭函數,有 this指向的問題
changeIndex:throttle(function(index){
this.activeIndex = index
},100)
},
};
產考官網的文檔使用
_.throttle(func, [wait=0], [options=])
參數
func (Function): 要節流的函數。
[wait=0] (number): 需要節流的毫秒。
[options=] (Object): 選項對象。
[options.leading=true] (boolean): 指定調用在節流開始前。
[options.trailing=true] (boolean): 指定調用在節流結束后。
返回
(Function): 返回節流的函數。
節流(2)
// 導包
npm i lodash
// 全部引入lodash
import _ from 'lodash' (不推薦)
// 按需引入 lodash的節流方法(throttle)
import debounce from 'lodash/throttle' (推薦)
// 在 wacth中使用
watch: {
//屬性名:要監視的數據的名稱
searchValue: {
immediate: true,
handler:
// 防抖
debounce(async function () {
const { data } = await getSearchSuggestions(this.searchValue)
this.suggestions = data.data.options
}, 1000)
}
},
// 防抖:前面的所有的觸發都被取消,最后一次執行在規定的時間之后才會觸發,也就是說如果連續快速的觸發·只會執行一次