npm install vue-use-async
import { Xhr } from 'vue-use-async';
new Xhr().get({ url: '/' });
import { useXhr } from 'vue-use-async';
export default function () {
const { get } = useXhr({ token });
const {
data,
isPending,
promise,
} = get({ url: '/', cacheDuration: 200 });
// ...
}
E.g; In setup
, a computed bearer token can be used. Each query has data
bind to be used
directly in a template.
A cache can be specified, therefore during this time another query with same parameters will be
directly resolved.
Similar to useXhr
can resolve a function when computed parameters changed. if condition
is used, the function will wait true
before being applied.
import { useAsync } from 'vue-use-async';
export default function () {
const func = () => Promise.resolve('ok');
const { data } = useAsync(func, [params, condition]);
// ...
}
Create a mutate function to be called with parameters.
import { useMutate } from 'vue-use-async';
const {
mutate,
onEnd,
onError,
} = useMutation(update);
mutate(p1, p2, p3);
// ...
useXhr
and useAsyc
return data
. By default, it will be null. Thanks to useResult
it's possible to initialize it.
import { useAsync, useResult } from 'vue-use-async';
const { data } = useAsync(getProducts);
const products = useResult(data, []);
// ...
Useful to bind the isPending
to a spinner icon with a minimum duration.
import { useAsync, useSpinner } from 'vue-use-async';
export default function () {
const func = () => Promise.resolve('ok');
const { data, isPending } = useAsync(func, [params, condition]);
const isPendingSpinner = useSpinner(isPending);
// ...
}
It's possible to capture rejected promise with errorCaptured