laravel - 如何在使用 axios 从 API 获取数据时更新我的 VueJs Data 函数属性值?
问题描述
我已成功从 API 获取数据。获取的数据显示在警报功能中。但是,数据函数中的属性,例如 - 'Recovered' 不会更新。我可以使用 Vanilla JS 显示获取的数据。但我想自动更新它们,并希望像这样 {{Recovered}} 显示它们。我该怎么做??
<template>
<div class="container">
<h2>Total Recovered: {{Recovered}}</h2>
</div>
</template>
<script>
import axios from 'axios'
export default {
name:'CoronaStatus',
data: function () {
return {
Recovered: '',
TotalConfirmed: '',
TotalDeaths: '',
// test: '30',
// test_2: 'maheeb',
// componentKey: 0,
}
},
mounted(){
this.globalStatus();
},
methods:{
globalStatus: function(){
// const self = this;
// this.componentKey += 1;
axios.get('https://api.covid19api.com/summary')
.then((response) => {
// this.recovered = response.data.Global.NewConfirmed;
this.Recovered= response.data.Global.TotalRecovered;
alert(this.Recovered);
// document.getElementById('test_5').innerHTML = "total: " + this.TotalRecovered;
}).catch(err=> console.log(err));
},
}
}
</script>
<style scoped>
</style>
解决方案
最简单的解决方案是使用setInterval每小时重新获取信息。
最好的解决方案是使用covid19api.com提供的 WebHook。
Vue.config.devtools = false;
Vue.config.productionTip = false;
var app = new Vue({
el: '#app',
data: {
Recovered: "Loading ..."
},
mounted() {
setInterval(() => {
this.globalStatus();
}, 3600000); // Call globalStatus every hour
this.globalStatus();
},
methods: {
globalStatus: function() {
axios
.get("https://api.covid19api.com/summary")
.then(response => {
this.Recovered = response.data.Global.TotalRecovered;
})
.catch(err => console.log(err));
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.2/axios.min.js"></script>
<div id="app">
<h2>Total Recovered: {{ Recovered }}</h2>
</div>
推荐阅读
- html - 为什么 body 之前有一个额外的空间,为什么 p 标签的边距溢出到那个空间?
- css - 如果样式组件中悬停状态的条件始终采用“else”值
- python - ValueError:值的长度 (221) 与索引的长度 (189) 不匹配
- android - 短信验证码请求失败,未知状态码 17006,同时在 android 上使用 firebase phone-auth api 进行身份验证
- python - SQLAlchemy 查询“选择为”
- android - 了解 Firebase 数据库
- c - _Generic() 中的语句而不是表达式
- matlab - 如何在 MATLAB 中为大型数据集选择 2 行并跳过 3 行?
- javascript - TypeError:querySnapshot.forEach 不是函数 - Firebase Cloud Functions
- python - 使用python从xml中提取标签