import { defineStore } from "pinia"; import { ref, computed } from "vue"; export const useLoadingStore = defineStore("loading", () => { const loadingCount = ref(0); // 요청 개수를 추적 const startLoading = () => { loadingCount.value++; }; const stopLoading = () => { if (loadingCount.value > 0) { setTimeout(() => { loadingCount.value--; }, 200); // 약간의 지연을 추가하여 응답이 동시에 도착해도 안정적으로 감소 } }; const isLoading = computed(() => loadingCount.value > 0); // 하나라도 요청이 있으면 로딩 활성화 return { isLoading, startLoading, stopLoading }; });