介绍
今天就跟大家聊聊有关怎么在Vue中封装一个节流函数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
function throttle (方法,上下文),{ clearTimeout才能((method.tId)) 时间=method.tId 才能;setTimeout (function (), { ,,method.call(上下文) ,,},100) ,} ,function resizeDiv (), { var 才能;div =, . getelementbyid (& # 39; myDiv& # 39;) div.style.height 才能=,div.offsetWidth +, & # 39; px # 39; ,}=,,window.onresize  function (), { 节流(resizeDiv)才能 以前,}>这个就是很典型的函数节流的应用,不多解释,本文通过vue的自定义指令封装类似的方法。
, & lt; template> ,& lt; div> & lt;才能输入 ,,类型=皌ext" ,,v模型=皌ext" ,,v-debounce=皊earch" 祝辞才能; ,& lt;/div> & lt;/template> & lt; script> ,export default  { ,,名字:& # 39;防反跳# 39; data 才能;(),{ ,,return { ,,,味精:,& # 39;Welcome 用Your Vue.js 应用# 39; ,,,:,& # 39;& # 39; ,,,数:1 ,,} ,,}, 指令才能:{ ,,,防反跳:{ ,,,插入:,function (el,绑定),{ ,,,,let 计时器 ,,,,el.addEventListener (& # 39; keyup # 39;,,(),=祝辞,{ ,,,,,if (定时器),{ ,,,,,,clearTimeout(计时) ,,,,,} ,,,,,timer =, setTimeout((),=祝辞,{ ,,,,,,binding.value () ,,,,,},,300) ,,,,}) ,,,} ,,} ,,}, 方法:才能,{ ,,search (), { ,,//,实际要进行的操作,axios.get(& # 39; & # 39;)之类的 ,,this.count + + ,,,console.log (& # 39; count 是:& # 39;,+,this.count) ,,} ,,} ,} & lt;/script>以上代码实现了一个实时搜索类的函数节流,通过vue自定义指令v-debounce实现。原本,如果我们想做一个实施搜索,那么会直接用@keyup=搜索,这样就会非常耗性能,键盘敲一下,就会调用一次搜索事件,如果是ajax请求,那么会非常不友好,所以通过v-debounce,则可以在键盘连续敲击的时候组织运行,停留300毫秒才执行。
通过vue的自定义指令,还可以将其挂载在全局,那样就能全局通过v-debounce调用了。这个比传统方法简单很多,不需要调用,应用之类的。
关键点:vue的自定义指令传递的参数绑定如果是一个函数,则通过binding.value()来执行,通过上述示例,还可以传递比如事件,绑定对象之类的,上例绑定的是埃尔,keyup事件,这些也可以通过绑定传递,通过vue的自定义指令,可以简化很多重复代码,并且逻辑更加清晰
看完上述内容,你们对怎么在vue中封装一个节流函数有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
怎么在Vue中封装一个节流函数