美文网首页
debounceFnHook vue函数防抖hook

debounceFnHook vue函数防抖hook

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

使用例子

<template>
  <div class="home">

    <div>
      <Card style='margin: 20% auto; width: 600px' title='form'>
        <h4> {{state}} </h4>
        <Input  :value='state' @input='run'  />
      </Card>
    </div>
    
  </div>
</template>

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

export default {

  setup(){
    const [ state, setState ] = setRefHook('')
    const { run, cancel } = debounceFnHook( setState, 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, setState ] = setRefHook('')
    const { run, cancel } = debounceFnHook( setState, 500 )
 *  
 */
export default function debounceFnHook(fn, wait){
    const timer = ref(null)
    
    const cancel = () => timer.value&&clearTimeout(timer.value)

    const run = (...args) => {
        cancel()
        timer.value = setTimeout(() => fn(...args), wait)
    }

    return {
        run,
        cancel
    }
}

相关文章

  • debounceFnHook vue函数防抖hook

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

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

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

  • debounceHook Vue 防抖值 hook

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

  • javaScript 防抖函数

    一. 防抖函数的定义与使用 防抖函数的定义 防抖函数的调用 二. 防抖函数应用场景 其实在HTML 和javaSc...

  • vue节流防抖函数

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

  • vue全局定义防抖函数和节流函数

    防抖函数 在common.js中 引入到vue组件中 import{debounce,}from"@/assets...

  • Javascript 基础

    1、函数防抖和函数节流 【《javascript高级程序设计》里,函数节流是这里讲的函数防抖。】函数防抖: 在事件...

  • 项目常用代码

    节流 } 防抖 } 页面滚动(requestAnimationFrame) vue全局点击防抖

  • JS函数防抖

    JS 中的函数防抖 一、什么是函数防抖? 概念: 函数防抖(debounce), 就是指触发事件后,在 n 秒内函...

  • 防抖与节流

    1. 防抖函数 1.1 防抖定义: 函数防抖(debounce):当持续触发事件时(例如mousemove),一定...

网友评论

      本文标题:debounceFnHook vue函数防抖hook

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