mirror of
https://gitee.com/bootx/dax-pay-ui.git
synced 2025-10-15 14:40:41 +00:00
19 lines
511 B
TypeScript
19 lines
511 B
TypeScript
import { watch } from 'vue';
|
|
import { isFunction } from '/@/utils/is';
|
|
|
|
export function useEffect<T extends any = any>(
|
|
effectHandler: (deps: T[], prevDeps?: T[]) => () => void,
|
|
dependencies: T[]
|
|
) {
|
|
return watch(
|
|
dependencies,
|
|
(changedDependencies, prevDependencies, onCleanUp) => {
|
|
const effectCleaner = effectHandler(changedDependencies, prevDependencies);
|
|
if (isFunction(effectCleaner)) {
|
|
onCleanUp(effectCleaner);
|
|
}
|
|
},
|
|
{ immediate: true, deep: true }
|
|
);
|
|
}
|