讲解vue中使用防抖,节流

防抖

防抖:所谓的防抖, 其实就是在固定时间内反复触发函数, 只有最后一次函数能够被执行 如果重新触发了函数, 将会重新计时。使用场景:在进行搜索的时候,当用户停止输入后调用方法,节约请求资源。
操作:我们可以借助setTimeout来做一个简单的实现,每次点击都会判断是否是当前定时器,如果是的话就清除掉。

  	data:{
           times: '',
        },
        methods: {
            extract() {
                this.debounce(this.handle, 1000)
            },
            debounce(fn, delay) {
                if (this.times) clearTimeout(this.times)
                this.times = setTimeout(() => {
                    fn()
                }, delay);
            },
            handle() {
                console.log("执行了······")
            },
        }

节流

节流:节流不是不让函数触发, 而是减少函数触发的频率 ,就是说在固定时间内, 函数只能执行一次,在某个时间段内暂时失效,过了这段时间后再重新激活(类似于技能冷却时间)

操作:我们可以借助setTimeout来做一个简单的实现,加上一个状态位valid来表示当前函数是否处于工作状态。

	data(){
		return{
			valid:false
		}
	},
    methods: {
        extract() {
            this.throttle(this.handle, 1000)
        },
        throttle(fn, wait) {
            if (!this.valid) {
            //(通行令不正确,不许进)判读如果不是false点击的话就返回一个false,并且不在向下执行。
                return false
            }
            //这里写要执行的任务,当你设置的这个到了之后,便会执行你所定义的方法。
            this.valid = false
            setTimeout(() => {
                this.valid = true
                this.handle()
            }, wait)
        },
        //实现对应的逻辑
        handle() {
            console.log('执行完毕······')
        },
    }    

防抖和节流严格算起来应该属于性能优化的知识,但实际上遇到的频率相当高,处理不当或者放任不管就容易引起浏览器卡死。所以还是很有必要掌握的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hope°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值