ahooks-v2
Version:
react hooks library
35 lines (26 loc) • 673 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var react_1 = require("react");
function useCreation(factory, deps) {
var current = react_1.useRef({
deps: deps,
obj: undefined,
initialized: false
}).current;
if (current.initialized === false || !depsAreSame(current.deps, deps)) {
current.deps = deps;
current.obj = factory();
current.initialized = true;
}
return current.obj;
}
exports["default"] = useCreation;
function depsAreSame(oldDeps, deps) {
if (oldDeps === deps) return true;
for (var i = 0; i < oldDeps.length; i++) {
if (oldDeps[i] !== deps[i]) return false;
}
return true;
}