自动管理请求状态
策略类型
use hook
useRequest 表示一次请求的发送,调用时默认将发送一次请求,在企业级项目中,在视图中展示数据的传输状态非常重要。在页面获取初始数据或提交数据时,useRequest 是最常用的 use hook 之一。
使用
它的基础用法已在基础-结合 UI 框架中详细介绍。
设置初始数据
data 在请求成功前默认为 undefined,但有时候我们需要 data 在请求成功前也有初始值,例如在请求列表时通常需要将它初始化为[],否则在渲染视图时会因为无法循环渲染而导致报错。
const { data } = useRequest(todoListGetter, {
// 请求响应前,data的初始值
initialData: []
});
也可以将initialData设置成函数动态设置初始值,例如,当你不希望应用每次进入时都显示 Loading 图标,而希望使用旧数据替代时,你可以返回旧数据作为初始值,它的体验比 Loading 更好。
const { data, loading, error } = useRequest(todoListGetter, {
initialData() {
// 设置上一次的响应数据
const storedData = localStorage.getItem('placeholder-data');
return JSON.parse(storedData || '{}');
// 也使用alova的level2存储适配器
// return alovaInst.l2cache.get('placeholder-data');
}
}).onSuccess(({ data, method }) => {
// 保存响应数据
localStorage.setItem('placeholder-data', JSON.stringify(data));
// 也使用alova的level2存储适配器
// alovaInst.l2cache.set('placeholder-data', data);
});