在React Native中,可以使用Axios进行HTTP请求。Axios可以缓存请求的响应数据,以减少网络请求的次数。下面是一个示例:
首先,安装axios库:
npm install axios
然后,创建一个axios实例,并配置缓存:
import axios from 'axios';
// 创建一个axios实例
const instance = axios.create({
baseURL: 'https://api.example.com',
timeout: 5000,
});
// 配置缓存
const cache = {};
// 添加请求拦截器
instance.interceptors.request.use(function (config) {
// 检查是否有缓存数据
const cacheKey = config.url;
const cachedData = cache[cacheKey];
if (cachedData) {
// 如果有缓存数据,则直接使用缓存数据返回
console.log('Using cached data...');
return Promise.resolve(cachedData);
}
return config;
}, function (error) {
return Promise.reject(error);
});
// 添加响应拦截器
instance.interceptors.response.use(function (response) {
// 缓存响应数据
const cacheKey = response.config.url;
cache[cacheKey] = response;
return response;
}, function (error) {
return Promise.reject(error);
});
export default instance;
在使用Axios发送请求的地方,使用上面创建的实例即可:
import axiosInstance from './axiosInstance';
axiosInstance.get('/user/1')
.then(function (response) {
// 处理响应数据
console.log(response.data);
})
.catch(function (error) {
// 处理错误
console.log(error);
});
上面的代码会先检查是否有缓存的响应数据,如果有则直接使用缓存数据返回,否则发送网络请求。收到响应后,会将响应数据缓存起来,以备后续使用。
这样,就实现了在某种方式上缓存了获取用户请求的Axios示例。