rc-hooks
Version:
React Hooks Library.
27 lines (26 loc) • 964 B
JavaScript
import { __read } from "tslib";
import { useState, useEffect } from 'react';
import useThrottleFn from '../useThrottleFn';
/**
* 用来处理节流值的 Hook。
*
* @param {*} value 需要节流的值。
* @param {number} [wait=0] 节流等待时间,单位为毫秒。默认 `0`。
* @param {boolean} [immediate=true] 是否在延迟开始前调用。默认 `true`。
* @returns
* @example
* const [value, setValue] = useState('');
* // 频繁调用 setValue , throttledValue 每隔 500ms 变化一次。
* const throttledValue = useThrottle(value, 500);
*/
function useThrottle(value, wait, immediate) {
if (wait === void 0) { wait = 0; }
if (immediate === void 0) { immediate = true; }
var _a = __read(useState(value), 2), state = _a[0], setState = _a[1];
var run = useThrottleFn(setState, wait, immediate).run;
useEffect(function () {
run(value);
}, [run, value]);
return state;
}
export default useThrottle;