@vue-widget/hooks
Version:
hooks from react to vue
24 lines (23 loc) • 763 B
JavaScript
import { isFunction } from "../utils";
import isDev from "../utils/isDev";
import { useMemo } from "../useMemo";
import { ref } from "vue";
export function useMemoizedFn(fn) {
if (isDev) {
if (!isFunction(fn)) {
console.error("useMemoizedFn expected parameter is a function, got ".concat(typeof fn));
}
}
var fnRef = useMemo(function () { return fn; }, [function () { return fn; }]);
var memoizedFn = ref();
if (!memoizedFn.value) {
memoizedFn.value = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return fnRef.value.apply(this, args);
};
}
return memoizedFn.value;
}