版博士V2.0程序
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

1234567891011121314151617181920212223242526272829303132333435
  1. import nprogress from 'nprogress';
  2. import { isNumber, isClient, tryOnScopeDispose } from '@vueuse/shared';
  3. import { ref, computed, watchEffect } from 'vue-demi';
  4. function useNProgress(currentProgress = null, options) {
  5. const progress = ref(currentProgress);
  6. const isLoading = computed({
  7. set: (load) => load ? nprogress.start() : nprogress.done(),
  8. get: () => isNumber(progress.value) && progress.value < 1
  9. });
  10. if (options)
  11. nprogress.configure(options);
  12. const setProgress = nprogress.set;
  13. nprogress.set = (n) => {
  14. progress.value = n;
  15. return setProgress.call(nprogress, n);
  16. };
  17. watchEffect(() => {
  18. if (isNumber(progress.value) && isClient)
  19. setProgress.call(nprogress, progress.value);
  20. });
  21. tryOnScopeDispose(nprogress.remove);
  22. return {
  23. isLoading,
  24. progress,
  25. start: nprogress.start,
  26. done: nprogress.done,
  27. remove: () => {
  28. progress.value = null;
  29. nprogress.remove();
  30. }
  31. };
  32. }
  33. export { useNProgress };