5.0.1 ā€¢ Published 7 months ago

use-debouncy v5.0.1

Weekly downloads
3,443
License
MIT
Repository
-
Last release
7 months ago

useDebouncy

šŸŒ€ Small (~0.2kb) debounce effect hook for React with TypeScript support

license dependents minified minified + gzip tree-shaking downloads types codecov FOSSA Status

npm.io

Features

  • šŸ‘Œ No dependencies.
  • šŸ‹ļøā€ Tiny. ~0.2kb. Size Limit controls the size.
  • šŸ¦¾ Performance. Used by requestAnimationFrame.
  • šŸ“– Types. Support TypeScript.
  • šŸŽ£ Easy. Use like React effect or function.

Installation

NPM

npm install use-debouncy

Yarn

yarn add use-debouncy

Usage

Demo codesandbox

Use as effect hook

import React, { useState } from 'react';
import useDebouncy from 'use-debouncy/effect'; // <== importing from effect

const App = () => {
  const [value, setValue] = useState('');

  useDebouncy(
    () => fetchData(value), // function debounce
    400, // number of milliseconds to delay
    [value], // array values that the debounce depends (like as useEffect)
  );

  return (
    <input value={value} onChange={(event) => setValue(event.target.value)} />
  );
};

Use as callback function

import React, { useState } from 'react';
import useDebouncy from 'use-debouncy/fn'; // <== importing from fn

const App = () => {
  const handleChange = useDebouncy(
    (event) => fetchData(event.target.value), // function debounce
    400, // number of milliseconds to delay
  );

  return <input value={value} onChange={handleChange} />;
};

API Reference

useDebouncy/effect

function useDebouncyEffect(fn: () => void, wait?: number, deps?: any[]): void;
PropRequiredDefaultDescription
fnāœ“Debounce callback.
wait0Number of milliseconds to delay.
deps[]Array values that the debounce depends (like as useEffect).

useDebouncy/fn

function useDebouncyFn(
  fn: (...args: any[]) => void,
  wait?: number,
): (...args: any[]) => void;
PropRequiredDefaultDescription
fnāœ“Debounce handler.
wait0Number of milliseconds to delay.

License

FOSSA Status

4.4.1

8 months ago

4.6.0

8 months ago

5.0.1-0

7 months ago

5.0.1

7 months ago

5.0.0

8 months ago

5.0.1-beta.3

7 months ago

5.0.1-beta.1

7 months ago

4.5.0

8 months ago

4.4.0

1 year ago

4.3.1

1 year ago

4.3.0

2 years ago

4.2.1

3 years ago

4.1.0

3 years ago

4.2.0

3 years ago

4.1.1

3 years ago

4.0.2

3 years ago

3.1.1

3 years ago

4.0.1

3 years ago

4.0.0

3 years ago

3.1.0

3 years ago

3.0.1

4 years ago

3.0.0

4 years ago

2.2.0

4 years ago

2.1.6

4 years ago

2.1.7

4 years ago

2.1.5

4 years ago

2.1.4

4 years ago

2.1.3

4 years ago

2.1.2

4 years ago

2.1.1

4 years ago

2.0.2

4 years ago

2.1.0

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.9.3

4 years ago

1.9.2

4 years ago

1.9.1

4 years ago

1.9.0

4 years ago

1.8.0

4 years ago

1.7.0

4 years ago

1.6.1

4 years ago

1.6.0

4 years ago

1.5.0

4 years ago

1.4.0

4 years ago

1.3.0

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.0

4 years ago

1.0.0

4 years ago