vue-use-query
Version:
vue use query
29 lines (28 loc) • 1.02 kB
JavaScript
import { onMounted, onUnmounted, ref } from 'vue';
import { notifyManager } from '../core/notifyManager';
import { useQueryClient } from './QueryClientProvider';
/**
* 根据筛选获取当前突变的数量
* @param filters 筛选条件
* @returns 突变的数量
*/
export function useIsMutating(filters) {
var queryClient = useQueryClient();
var isMutating = ref(queryClient.isMutating(filters));
// 订阅观察者
var unsubscribe;
onMounted(function () {
unsubscribe = queryClient.getMutationCache().subscribe(function () {
notifyManager.batchCalls(function () {
var newIsMutating = queryClient.isMutating(filters);
if (isMutating.value !== newIsMutating) {
isMutating.value = newIsMutating;
}
})();
});
});
onUnmounted(function () {
unsubscribe === null || unsubscribe === void 0 ? void 0 : unsubscribe();
});
return isMutating;
}