美文网首页lodash
Vue中使用 Lodash.throttle 来做节流

Vue中使用 Lodash.throttle 来做节流

作者: zZ_d205 | 来源:发表于2020-12-14 12:10 被阅读0次

    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

    正确用法

    <button @click="clickMe">Click Me</button>
    
    
    import _ from 'lodash'
    
    export default{
     methods:{
        clickMe:_.throttle(function(event){
                console.log('hello')
                console.log(this)
                console.log('event',event)
        },1000)
     }
    }
    
    

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

    注意

    不要在throttle或者debounce中使用箭头函数,会导致this指向不正确,lodash中已通过apply为function继承了原函数的this指向

    相关文章

      网友评论

        本文标题:Vue中使用 Lodash.throttle 来做节流

        本文链接:https://www.haomeiwen.com/subject/mmlvgktx.html