@antdv/pro-utils
Version:
@antdv/pro-utils
31 lines (30 loc) • 544 B
JavaScript
import {
onMounted,
onUnmounted,
onUpdated,
ref,
watch
} from "vue";
function useEffect(setup, dependencies) {
const cleanupRef = ref(null);
const runEffect = () => {
if (cleanupRef.value) {
cleanupRef.value();
}
cleanupRef.value = setup();
};
onMounted(runEffect);
if (dependencies) {
watch(dependencies, runEffect);
} else if (dependencies === void 0) {
onUpdated(runEffect);
}
onUnmounted(() => {
if (cleanupRef.value) {
cleanupRef.value();
}
});
}
export {
useEffect
};