Ini yang saya ada sekarang. Di Mount () saya, saya mempunyai fetchCoins() tetapi ini membuat panggilan API apabila pengguna menyegarkan semula
Saya cuba memanggil API, data disimpan dalam storan tempatan dan kemudian dapatkan data setiap minit
methods: { async fetchCoins() { const response = await fetch("https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=100&page=1&sparkline=false&price_change_percentage=1h"); const data = await response.json(); this.coins = this.coins.concat(data); }, setData() { localStorage.setItem('coin-info', JSON.stringify(this.coins)) }, getData() { let get = localStorage.getItem('coin-info', []); this.coins = JSON.parse(get); console.log(this.coins); setInterval(() => { this.fetchCoins() }, 60000); }, }
Anda perlu menjejaki tarikh dalam localStorage apabila pengambilan terakhir berlaku. Berikut adalah contoh pelaksanaan:
Anda perlu berada dalam panggilan
mounted
函数中更改对this.fetchCoins()
fungsi tersebut.Tetapi sila ingat bahawa terdapat beberapa kaveat tentang coretan kod ini (di luar skop soalan):
setTimeout
和setInterval
bukan fungsi masa yang tepat sepenuhnya. Mereka mungkin ditangguhkan selama beberapa milisaat. Jika anda bimbang tentang ralat seperti ini, lihat beberapa soalan lain yang mencadangkan penyelesaian, seperti yang ini.coin-info-last-fetch
ditulis.setTimeout
dalam data komponen supaya anda akhirnya boleh mengosongkannya.