diff --git a/packages/core/useTransition/index.ts b/packages/core/useTransition/index.ts index 7c46b5ddbff..ec34a74e622 100644 --- a/packages/core/useTransition/index.ts +++ b/packages/core/useTransition/index.ts @@ -199,15 +199,19 @@ export function useTransition( const timeout = useTimeoutFn(start, delay, { immediate: false }) watch(sourceVector, () => { - if (unref(disabled)) { + if (unref(disabled)) + return + if (unref(delay) <= 0) + start() + else timeout.start() + }, { deep: true }) + + watch(() => unref(disabled), (v) => { + if (v) { outputVector.value = sourceVector.value.slice(0) + pause() } - else { - if (unref(delay) <= 0) - start() - else timeout.start() - } - }, { deep: true }) + }) return computed(() => { const targetVector = unref(disabled) ? sourceVector : outputVector