Могу ли я кэшировать объект вызова API, используя Vue JS ловушки жизненного цикла? - PullRequest
0 голосов
/ 01 мая 2020

Я использую Strain API, который имеет поисковый запрос, который получает все штаммы в своей базе данных. Он говорит, чтобы использовать это экономно, поскольку это требует много вычислительной мощности. Мой вопрос: могу ли я вызвать его один раз в хуке жизненного цикла компонента приложения, сохранить ответ в приложении data () и как-то его кешировать, чтобы в случае data.object.length! = 0 он не пытался вызвать это снова? Тогда я мог бы передать это как опору любому другому компоненту, который нуждается в этом. Извините, новичок в VueJs и программировании.

1 Ответ

0 голосов
/ 01 мая 2020

Лучшее, на мой взгляд, это сохранить вычисленные данные в сервисе, чтобы вы в подключенном компоненте просто вызывали 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...