UNPKG

@slan-health/taro-vueuse

Version:

taro vue版本hooks

41 lines (40 loc) 1.26 kB
import { inject, onUnmounted } from "vue"; import { GLOBAL_OPTIONS_PROVIDE_KEY, getGlobalOptions } from "./config.js"; import createQuery from "./createQuery.js"; function useQuery(service, options = {}, plugins) { const injectedGlobalOptions = inject( GLOBAL_OPTIONS_PROVIDE_KEY, {} ); const config = { ...getGlobalOptions(), ...injectedGlobalOptions, ...options }; const { manual = false, defaultParams = [] } = config; const queryInstance = createQuery(service, config); queryInstance.plugins.value = plugins.map((i) => i(queryInstance, config)); if (!manual) { const params = queryInstance.params.value || defaultParams; queryInstance.context.run(...params); } onUnmounted(() => { queryInstance.context.cancel(); }); return { loading: queryInstance.loading, data: queryInstance.data, error: queryInstance.error, params: queryInstance.params, cancel: queryInstance.context.cancel, refresh: queryInstance.context.refresh, refreshAsync: queryInstance.context.refreshAsync, mutate: queryInstance.context.mutate, run: queryInstance.context.run, runAsync: queryInstance.context.runAsync }; } export { useQuery as default }; //# sourceMappingURL=useQuery.js.map