21 lines
		
	
	
		
			385 B
		
	
	
	
		
			JavaScript
		
	
	
		
		
			
		
	
	
			21 lines
		
	
	
		
			385 B
		
	
	
	
		
			JavaScript
		
	
	
|  | import { customRef } from "vue"; | ||
|  | 
 | ||
|  | const loading = customRef((track, trigger) => { | ||
|  |   let loadingCount = 0; | ||
|  |   return { | ||
|  |     get() { | ||
|  |       track(); | ||
|  |       return loadingCount > 0; | ||
|  |     }, | ||
|  |     set(value) { | ||
|  |       loadingCount += value ? 1 : -1; | ||
|  |       loadingCount = Math.max(0, loadingCount); | ||
|  |       trigger(); | ||
|  |     }, | ||
|  |   }; | ||
|  | }); | ||
|  | 
 | ||
|  | export default function useRequestLoading() { | ||
|  |   return loading; | ||
|  | } |