@nutui/nutui-react
Version:
京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序
33 lines (32 loc) • 840 B
JavaScript
import { useEffect, useRef } from "react";
function useWatch(dep, callback) {
var config = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
immediate: false
};
var immediate = config.immediate;
var prev = useRef();
var inited = useRef(false);
var stop = useRef(false);
useEffect(function() {
var execute = function() {
return callback(prev.current);
};
if (!stop.current) {
if (!inited.current) {
inited.current = true;
if (immediate) {
execute();
}
} else {
execute();
}
prev.current = dep;
}
}, [
dep
]);
return function() {
stop.current = true;
};
}
export default useWatch;