rc-hooks
Version:
React Hooks Library.
29 lines (28 loc) • 1.08 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = require("react");
var useDebounceFn_1 = tslib_1.__importDefault(require("../useDebounceFn"));
/**
* 用来处理防抖值的 Hook。
*
* @param {*} value 需要防抖的值。
* @param {number} [wait=0] 防抖等待时间,单位为毫秒。默认 `0`。
* @param {boolean} [immediate=false] 是否在延迟开始前调用。默认 `false`。
* @returns
* @example
* const [value, setValue] = useState('');
* // 在 value 修改结束 500ms 后变化。
* const debouncedValue = useDebounce(value, 500);
*/
function useDebounce(value, wait, immediate) {
if (wait === void 0) { wait = 0; }
if (immediate === void 0) { immediate = false; }
var _a = tslib_1.__read((0, react_1.useState)(value), 2), state = _a[0], setState = _a[1];
var run = (0, useDebounceFn_1.default)(setState, wait, immediate).run;
(0, react_1.useEffect)(function () {
run(value);
}, [run, value]);
return state;
}
exports.default = useDebounce;
;