vue-use-query
Version:
vue use query
35 lines (34 loc) • 1.07 kB
JavaScript
/**
* queryclient服务提供者
*/
import { defineComponent, inject, onMounted, onUnmounted, provide } from 'vue';
import { QueryClient } from '../core';
var symbol = Symbol('QueryClientProvider');
export var useQueryClient = function () {
var queryClient = inject(symbol, undefined);
if (!queryClient) {
throw new Error('No QueryClient set, use QueryClientProvider to set one');
}
return queryClient;
};
// 服务提供者
export var QueryClientProvider = defineComponent({
name: 'QueryClientProvider',
props: {
client: {
type: QueryClient,
required: true,
},
},
setup: function (props, _a) {
var slots = _a.slots;
provide(symbol, props.client);
onMounted(function () {
props.client.mount();
});
onUnmounted(function () {
props.client.unmount();
});
return function () { var _a; return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots); };
},
});