UNPKG

@vue-widget/hooks

Version:

hooks from react to vue

24 lines (23 loc) 763 B
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; }