怎么在Vue中封装一个节流函数

  介绍

今天就跟大家聊聊有关怎么在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中封装一个节流函数