//节流:在规定的间隔时间范围内不会重复触发回调,只有大于这个时间间隔才会触发回调,把频繁触发变为少量触发(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)
}
},
// 防抖:前面的所有的触发都被取消,最后一次执行在规定的时间之后才会触发,也就是说如果连续快速的触发·只会执行一次