Vue中使用節流Lodash throttle
阿新 • • 發佈:2018-12-15
load 實現 div 開發 script loading this指向 console das
在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