@vue-widget/hooks
Version:
hooks from react to vue
35 lines (34 loc) • 1.07 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useMemoizedFn = useMemoizedFn;
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _utils = require("../utils");
var _isDev = _interopRequireDefault(require("../utils/isDev"));
var _useMemo = require("../useMemo");
var _vue = require("vue");
function useMemoizedFn(fn) {
if (_isDev["default"]) {
if (!(0, _utils.isFunction)(fn)) {
console.error("useMemoizedFn expected parameter is a function, got ".concat((0, _typeof2["default"])(fn)));
}
}
var fnRef = (0, _useMemo.useMemo)(function () {
return fn;
}, [function () {
return fn;
}]);
var memoizedFn = (0, _vue.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;
}