我可以使用 Vue JS 生命周期挂钩缓存 API 调用对象吗?

Can I cache an API call object using Vue JS lifecycle hooks?

我正在使用 The Strain API,它有一个搜索查询,可以获取其数据库中的所有菌株。它说要谨慎使用它,因为它需要大量的计算能力。我的问题是:我可以在 App 组件生命周期挂钩中调用它一次,将响应保存在 App data() 中,并以某种方式缓存它,这样如果 data.object.length != 0,它就不会尝试调用又是吗?然后我可以将它作为道具传递给任何其他需要它的组件。抱歉,VueJs 和编程的新手。

我认为最好的办法是将计算的数据保存在一个服务中,这样你就可以在你挂载的组件中简单地调用 getData(),从 StrainService.js

中导入
// StrainService.js
let response = null;


const getData = async () => {
    if (!response) {
        response = await StrainApiCall()
    }

    return response
}


const StrainApiCall = () => {
    return axios.get('yourdata.com') // your api call
}


export {
    getData
}