Vue中使用节流Lodash throttle

Posted crazycode2

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue中使用节流Lodash throttle相关的知识,希望对你有一定的参考价值。

在Vue中,有时需要对ajax请求提交进行节流操作.这时候,如果页面在请求成功之后会跳转,使用vue指令once或者加载一个loading遮罩禁止点击即可,但如果请求之后不跳转,并且loading不适用时,需要通过其他方式来实现节流,比如通过标识位判断等,这里我们着重说一下如何通过lodash.throttle来实现节流

lodash
lodash是一个广受欢迎的js工具库,其中包含了各种各样的工具函数,方便开发时不需要反复造轮子,更关注于业务.目前已经是4.x版本,文档也十分好找lodash中文文档

_.throttle
这是lodash中的节流函数,具体作用可以直接看官方文档,这里不再进行解释

说下在vue中具体怎么用

首先上错误用法

import _ from ‘lodash‘

export default{
  methods:{
    click(){
      _.throttle(()=>{
        console.log(‘hello‘)
      },1000)
    }
  }
}

以上这样写,在执行时候并不会打印console

正确用法

import _ from ‘lodash‘

export default{
  methods:{
    click:_.throttle(function(){
      console.log(‘hello‘)
      console.log(this)
    },1000)
  }
}

在lodash的throttle方法中,可以直接使用function,而且额外的好处是无需重新指向this,在函数内部中,已经做了apply,所以这里的this指向的就是vue实例,这样对已有函数的改造也是十分的方便,外面包一层_.throttle就可以了!



以上是关于Vue中使用节流Lodash throttle的主要内容,如果未能解决你的问题,请参考以下文章

lodash 的 防抖(debounce)和节流(throttle)

react 中使用 lodash 中的 _.throttle

lodash源码学习debounce,throttle

vue防抖节流之v-debounce--throttle使用指南

Vue移动端项目——搜索联想建议功能的实现(结合watch属性和使用lodash防抖节流)

vue中element中的input框和laod中防抖和节流结合使用(性能优化)使用lodash相关方法