vue-hooks-plus
Version:
Vue hooks library
14 lines (13 loc) • 465 B
JavaScript
import { watch } from "vue";
const diffTwoDeps = (deps1, deps2) => {
return deps1 ? deps1.map((_ele, idx) => deps1[idx] !== (deps2 == null ? void 0 : deps2[idx]) ? idx : -1).filter((ele) => ele >= 0) : deps2 ? deps2.map((_ele, idx) => idx) : [];
};
const useTrackedEffect = (effect, deps) => {
watch(deps != null ? deps : [], (curr, prev) => {
const changes = diffTwoDeps(prev, curr);
effect(changes);
});
};
export {
useTrackedEffect as default
};