useDebounce.js 363 B

123456789101112
  1. import { shallowRef, watchEffect } from 'vue';
  2. export default function useDebounce(value) {
  3. var cacheValue = shallowRef(value.value.slice());
  4. var timeout = null;
  5. watchEffect(function () {
  6. clearTimeout(timeout);
  7. timeout = setTimeout(function () {
  8. cacheValue.value = value.value;
  9. }, value.value.length ? 0 : 10);
  10. });
  11. return cacheValue;
  12. }