美文网首页
react-native 防抖

react-native 防抖

作者: Biao_349d | 来源:发表于2023-10-27 15:08 被阅读0次
  1. 类组件中使用

import debounce from 'lodash.debounce'

class Pagination extends React.PureComponent<any, any> {
  constructor(props: any) {
    super(props)
    this.handlePrev = debounce(this.handlePrev, 1000, {
      leading: true,
      trailing: false
    })
  }

handlePrev  = () => {}

  1. 在函数式中使用
    import debounce from 'lodash.debounce'
function Home(){
const   haldeNext = useCallback(debounce(() => {}, 200), [])
  return <></>
}
  1. 自定义防抖
import { useRef } from 'react'

/* fn (Function): 要防抖动的函数。
[delay=0] (number): 需要延迟的毫秒数。
[options=] (Object): 选项对象。
[options.leading=false] (boolean): 指定在延迟开始前调用。
[options.trailing=true] (boolean): 指定在延迟结束后调用
*/
function useDebounce(fn: any, delay: any, options: { leading?: boolean; trailing?: boolean } = { leading: false, trailing: true }) {
  const { current } = useRef<any>({
    timer: null,
    dateTime: null
  })
  function f(...args: any[]) {
    const endTime = new Date().getTime()
    if (current.dateTime && options.leading && endTime - current.dateTime < delay) {
      return false
    } else if (options.leading) {
      current.dateTime = new Date().getTime()
      fn.bind(undefined, ...args)()
    }
    if (options.trailing) {
      if (current.timer) {
        clearTimeout(current.timer)
      }
      current.timer = setTimeout(fn.bind(undefined, ...args), delay)
    }
  }

  return f
}

export default useDebounce

使用自定义防抖


    const onActionButton = useDebounce(
      async (item: any) => {
        console.log('item', item)
      },
      1000,
      {
        leading: true,
        trailing: false
      }
    )

相关文章

  • 索尼机身防抖和镜头防抖

    索尼微单系统拥有带防抖功能的机身和带防抖功能的镜头。无论防抖组件位于哪里,它们都属于光学防抖。 机身防抖 机身防抖...

  • js 防抖 节流

    节流 防抖1 防抖2

  • javaScript 防抖函数

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

  • 防抖与节流

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

  • 项目常用代码

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

  • 函数防抖防抖/节流

    众所周知,函数节流和函数防抖都是优化高频率执行js代码的一种方法,二者的区别及使用方法如下: 函数节流 函数防抖,...

  • JS函数防抖

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

  • js 防抖和节流

    防抖 防抖是js优化的重要的一部分,也是面试中手写代码最常考的题目。那么我们为什么要防抖?防抖是什么意思?比如我们...

  • JavaScript防抖和节流

    1. 认识防抖和节流 1.1. 对防抖和节流的认识 防抖和节流的概念其实最早并不是出现在软件工程中,防抖是出现在电...

  • 节流与防抖

    使用防抖和节流技术的意义:节约资源,提升用户体验。 防抖(debounce) 防抖:触发高频事件后n秒内函数只会执...

网友评论

      本文标题:react-native 防抖

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