vue-hooks-plus
Version:
Vue hooks library
21 lines (20 loc) • 871 B
JavaScript
const vue = require("vue");
const isEqual = require("lodash-es/isEqual");
const useEffectWithTarget = require("./useEffectWithTarget");
const _interopDefaultLegacy = (e) => e && typeof e === "object" && "default" in e ? e : { default: e };
const isEqual__default = /* @__PURE__ */ _interopDefaultLegacy(isEqual);
const useEffectWithTarget__default = /* @__PURE__ */ _interopDefaultLegacy(useEffectWithTarget);
const depsEqual = (aDeps, bDeps = []) => {
return isEqual__default.default(aDeps, bDeps);
};
const useDeepCompareEffectWithTarget = (effect, deps, target) => {
const targetRef = vue.ref();
const signalRef = vue.ref(0);
if (!depsEqual(deps, targetRef.value)) {
targetRef.value = deps;
signalRef.value += 1;
}
useEffectWithTarget__default.default(effect, [signalRef], target);
};
module.exports = useDeepCompareEffectWithTarget;
;