美文网首页
throttleFnHook Vue 函数节流Hook

throttleFnHook Vue 函数节流Hook

作者: copyLeft | 来源:发表于2020-04-05 00:41 被阅读0次

使用例子

<template>
  <div class="home">

    <div>
      <Card style='margin: 20% auto; width: 600px' title='form'>
        <h4> {{state}} </h4>
        <Button @click="run"> add </Button>
      </Card>
    </div>
    
  </div>
</template>

<script>
// import { ref } from '@vue/composition-api'
import setRefHook from '@/hooks/setRefHook'
import throttleFnHook from '@/hooks/throttleFnHook' 

export default {

  setup(){
    const [state, setState] = setRefHook(0)
    const { run, cancel } = throttleFnHook( () => setState(state.value + 1) , 500 )

   return {
     state,
     run,
     cancel
   }

  }

}
</script>

实现

import { ref } from '@vue/composition-api'


/**
 * 
 * @param { Function } fn 被包装函数 
 * @param { Number } wait 间隔时间 ms 
 * @return { { run, cancel } } run 执行函数  cancel 取消执行
 * @exports
 * 
 * const state = 1
 * const addOne = () => state = state + 1
 * const { run: addOne } = throttleFnHook(addOne, 500) 
 * 
 */
export default function throttleFnHook(fn, wait){

    const timer = ref(null)

    const cancel = () => timer.value&&clearTimeout(timer.value)

    const run = (...args) => {
        if(timer.value){return}
        
        timer.value = setTimeout(() => {

            fn(...args)
            timer.value = null
            
        }, wait)
    }
    
    return {
        cancel,
        run
    }
}

相关文章

  • throttleFnHook Vue 函数节流Hook

    使用例子 实现 left-vue-hooks vue的hooks工具包

  • Vue3——Hook函数 & 生命周期 & toRef和toRe

    一、Hook函数 Vue3 的hook函数相当于 vue2 的 mixin,不同点在于hooks是函数。Vue3的...

  • vue3 hook函数

    Vue3 的 hook函数 相当于 vue2 的 mixin, 不同在与 hooks 是函数 Vue3 的 hoo...

  • throttleHook Vue 节流值 hook

    使用例子 实现 left-vue-hooks vue的hooks工具包

  • 节流函数的应用场景

    vue实现输入框的模糊查询(节流函数的应用场景) 上一篇讲到了javascript的节流函数和防抖函数,那么我们在...

  • netfilter hook函数

    HOOK函数注册 上图是netfilter中注册的部分hook函数.这些hook函数是通过 nf_register...

  • 防抖函数的应用

    vue实现手机号码的校验(防抖函数的应用场景) 上一篇博文我们讲到了节流函数的应用场景,我们知道了节流函数可以用在...

  • js节流函数

    JS节流函数 1. 节流函数的定义 2. 节流函数的用法

  • vue节流防抖函数

    前言 防抖和节流的目的都是为了减少不必要的计算,不浪费资源,只在适合的时候再进行触发计算。 一、函数防抖 定义在事...

  • vue的组件渲染流程

    1、给组件创建个构造函数,基于Vue。 2、开始生成虚拟节点,对组件进行特殊处理 data.hook = {ini...

网友评论

      本文标题:throttleFnHook Vue 函数节流Hook

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