Category | @Integrations |
---|---|
Export Size | 1.54 kB |
Package | @vueuse/integrations |
Last Changed | last week |
Wrapper for axios
.
npm i axios
import { useAxios } from '@vueuse/integrations/useAxios' const { data, isFinished } = useAxios('/api/posts')
or use an instance of axios
import axios from 'axios' import { useAxios } from '@vueuse/integrations/useAxios' const instance = axios.create({ baseURL: '/api', }) const { data, isFinished } = useAxios('/posts', instance)
use an instance of axios with config options
import axios from 'axios' import { useAxios } from '@vueuse/integrations/useAxios' const instance = axios.create({ baseURL: '/api', }) const { data, isFinished } = useAxios('/posts', { method: 'POST' }, instance)
When you don't pass the url
. The default value is {immediate: false}
import { useAxios } from '@vueuse/integrations/useAxios' const { execute } = useAxios() execute(url)
The execute
function url
here is optional, and url2
will replace the url1
.
import { useAxios } from '@vueuse/integrations/useAxios' const { execute } = useAxios(url1, {}, { immediate: false }) execute(url2)
The execute
function can accept config
only.
import { useAxios } from '@vueuse/integrations/useAxios' const { execute } = useAxios(url1, { method: 'GET' }, { immediate: false }) execute({ params: { key: 1 } }) execute({ params: { key: 2 } })
The execute
function resolves with a result of network request.
import { useAxios } from '@vueuse/integrations/useAxios' const { execute } = useAxios() const result = await execute(url)
use an instance of axios with immediate
options
import axios from 'axios' import { useAxios } from '@vueuse/integrations/useAxios' const instance = axios.create({ baseURL: '/api', }) const { data, isFinished } = useAxios('/posts', { method: 'POST' }, instance, { immediate: false, })
export interface UseAxiosReturn<T, R = AxiosResponse<T>, _D = any> { /** * Axios Response */ response: ShallowRef<R | undefined> /** * Axios response data */ data: Ref<T | undefined> /** * Indicates if the request has finished */ isFinished: Ref<boolean> /** * Indicates if the request is currently loading */ isLoading: Ref<boolean> /** * Indicates if the request was canceled */ isAborted: Ref<boolean> /** * Any errors that may have occurred */ error: ShallowRef<unknown | undefined> /** * Aborts the current request */ abort: (message?: string | undefined) => void /** * Alias to `abort` */ cancel: (message?: string | undefined) => void /** * Alice to `isAborted` */ isCanceled: Ref<boolean> } export interface StrictUseAxiosReturn<T, R, D> extends UseAxiosReturn<T, R, D> { /** * Manually call the axios request */ execute: ( url?: string | AxiosRequestConfig<D>, config?: AxiosRequestConfig<D> ) => Promise<StrictUseAxiosReturn<T, R, D>> } export interface EasyUseAxiosReturn<T, R, D> extends UseAxiosReturn<T, R, D> { /** * Manually call the axios request */ execute: ( url: string, config?: AxiosRequestConfig<D> ) => Promise<EasyUseAxiosReturn<T, R, D>> } export interface UseAxiosOptions<T = any> { /** * Will automatically run axios request when `useAxios` is used * */ immediate?: boolean /** * Use shallowRef. * * @default true */ shallow?: boolean /** * Callback when error is caught. */ onError?: (e: unknown) => void /** * Callback when success is caught. */ onSuccess?: (data: T) => void /** * Initial data to use */ initialData?: T /** * Sets the state to initialState before executing the promise. */ resetOnExecute?: boolean /** * Callback when request is finished. */ onFinish?: () => void } export declare function useAxios<T = any, R = AxiosResponse<T>, D = any>( url: string, config?: AxiosRequestConfig<D>, options?: UseAxiosOptions ): StrictUseAxiosReturn<T, R, D> & Promise<StrictUseAxiosReturn<T, R, D>> export declare function useAxios<T = any, R = AxiosResponse<T>, D = any>( url: string, instance?: AxiosInstance, options?: UseAxiosOptions ): StrictUseAxiosReturn<T, R, D> & Promise<StrictUseAxiosReturn<T, R, D>> export declare function useAxios<T = any, R = AxiosResponse<T>, D = any>( url: string, config: AxiosRequestConfig<D>, instance: AxiosInstance, options?: UseAxiosOptions ): StrictUseAxiosReturn<T, R, D> & Promise<StrictUseAxiosReturn<T, R, D>> export declare function useAxios<T = any, R = AxiosResponse<T>, D = any>( config?: AxiosRequestConfig<D> ): EasyUseAxiosReturn<T, R, D> & Promise<EasyUseAxiosReturn<T, R, D>> export declare function useAxios<T = any, R = AxiosResponse<T>, D = any>( instance?: AxiosInstance ): EasyUseAxiosReturn<T, R, D> & Promise<EasyUseAxiosReturn<T, R, D>> export declare function useAxios<T = any, R = AxiosResponse<T>, D = any>( config?: AxiosRequestConfig<D>, instance?: AxiosInstance ): EasyUseAxiosReturn<T, R, D> & Promise<EasyUseAxiosReturn<T, R, D>>
© 2019-present Anthony Fu
Licensed under the MIT License.
https://vueuse.org/integrations/useAxios/