强制请求
TIP
为保证体验,请打开开发者工具,选择网络面板,观察网络请求状态。如果请求响应时间过短,可以调到低速3G模式延长响应时间。
某些情况下你可能需要强制发出请求,forceRun 就是为此而生的。
WARNING
forceRun
会强制发出一次请求,取消尚未完成的请求,忽略缓存,忽略useLastRequest
的设置。
完整示例
result:
loading: false
error:
onCache:
<template>
<div class="demo-container">
<h3>result: <span>{{ result }}</span></h3>
<h3>loading: <span>{{ loading }}</span></h3>
<h3>error: <span>{{ error }}</span></h3>
<h3>onCache: <span>{{ onCacheStr }}</span></h3>
<button class="primary" @click="handleRun">run</button>
<button @click="handleForceRun">forceRun</button>
<button @click="reset">reset</button>
</div>
</template>
<script lang="ts" setup>
import { ref } from 'vue';
import { useRequest } from '@superarale/vue-use-request';
import { request, IParams, IResult, correctKey } from './request';
const onCacheStr = ref('');
const onCache = (result: IResult) => {
onCacheStr.value = `onCache triggered: ${JSON.stringify(result)}`;
};
const reset = () => {
result.value = null;
loading.value = false;
error.value = null;
onCacheStr.value = '';
};
const { result, loading, error, run, forceRun } = useRequest(request, {
cacheTime: 3000,
onCache,
useLastRequest: true,
});
const handleRun = () => {
const params: IParams = {
key: correctKey,
};
run(params);
};
const handleForceRun = () => {
const params: IParams = {
key: correctKey,
};
forceRun(params);
};
</script>