7 changed files with 23 additions and 8 deletions
@ -0,0 +1,16 @@ |
|||
import { WatchOptions } from 'vue'; |
|||
import { watch } from 'vue'; |
|||
import { isFunction } from '/@/utils/is'; |
|||
|
|||
export const useEffect = (effectHandler: Fn, dependencies: any[]) => { |
|||
return watch( |
|||
dependencies, |
|||
(changedDependencies, prevDependencies, onCleanUp) => { |
|||
const effectCleaner = effectHandler(changedDependencies, prevDependencies); |
|||
if (isFunction(effectCleaner)) { |
|||
onCleanUp(effectCleaner); |
|||
} |
|||
}, |
|||
{ immediate: true, deep: true } as WatchOptions |
|||
); |
|||
}; |
|||
Loading…
Reference in new issue