You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在最小改动现有代码的前提下缓存Axios API响应?

给API请求添加轻量缓存方案(最小改动)

不需要引入额外依赖,直接用内存对象实现缓存,对你现有代码的改动极小:

import axios from 'axios';

// 新增内存缓存对象,用邮编作为键
const cache = {};

export const getAreaData = async (postcode) => {
    // 先检查缓存,存在直接返回
    if (cache[postcode]) {
        return cache[postcode];
    }
    // 原请求逻辑完全保留
    const { data } = await axios.get(`https://api.zippopotam.us/GB/${postcode}`);
    // 把结果存入缓存
    cache[postcode] = data.places;
    return data.places;
};

可选扩展:持久化缓存

如果需要页面刷新后仍保留缓存,可改用localStorage实现,改动同样很小:

import axios from 'axios';

export const getAreaData = async (postcode) => {
    const cacheKey = `area_data_${postcode}`;
    // 读取本地缓存
    const cachedData = localStorage.getItem(cacheKey);
    if (cachedData) {
        return JSON.parse(cachedData);
    }
    // 原请求逻辑不变
    const { data } = await axios.get(`https://api.zippopotam.us/GB/${postcode}`);
    // 存入本地缓存
    localStorage.setItem(cacheKey, JSON.stringify(data.places));
    return data.places;
};

两种方案都仅在原函数基础上添加了缓存检查和写入逻辑,完全保留了你原本的请求流程。

内容的提问来源于stack exchange,提问作者yos 24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 20:45:27