@taro-hooks/ahooks
Version:
26 lines (25 loc) • 721 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var core_1 = require("@taro-hooks/core");
var shared_1 = require("@taro-hooks/shared");
var utils_1 = require("../utils");
function useCreation(factory, deps) {
var creation = (0, core_1.useRef)({
deps: deps,
obj: undefined,
initialized: false
},
// @ts-ignore
true);
if ((0, shared_1.escapeState)(creation.current).initialized === false || !(0, utils_1.depsAreSame)((0, shared_1.escapeState)(creation.current).deps, deps)) {
creation.current = {
deps: deps,
obj: factory(),
initialized: true
};
}
return (0, shared_1.escapeState)(creation.current).obj;
}
exports["default"] = useCreation;