Vue的防抖与节流
首先我们先看一下防抖和节流的定义。
防抖:在同一时间段执行多次,但是只在最后一次有效(执行);每次触发函数清除掉原来的定时器,重新开始计时。如果在规定时间内不再触发函数,则执行,否则,清除掉之前的定时器,重新计时。
节流:在一段时间内,只能触发一次函数。
今天突然发现了一个问题,做搜索效果时每输入一个字母或者数字,都会立刻请求一次,如果输入量过大可能会对服务器造成影响,并且点击刷新时,会立刻请求三次,原因是使用了watch监听,但是没有使用防抖函数,现在把防抖函数加入到代码中。
我在外部建立了名为config的js文件,在其中构建了防抖和节流函数,这里以防抖函数为例。
使用如下代码引入
import { debounce } from '@/untils/config.js'
方法代码如下
这里的function是第一个参数,200是第二个参数,为计时器时间,可以根据需要来修改。
这里踩了一个坑,虽然requestTable后面没有了“(){}”,但它还是一个方法,所以调用的时候依然需要加().
如
this.requestTable()
节流函数可依照以上方法来实现,只需要改一个方法名,因为所需要的参数是一样的。
上一篇: 根据数字不同显示不同的状态——( ̄∇ ̄)
下一篇: 根据数字不同显示不同的状态--函数法