Javascript 如果Vue.js中的后端API数据值发生变化,如何自动更新前端?

Javascript 如果Vue.js中的后端API数据值发生变化,如何自动更新前端?,javascript,vuejs2,axios,Javascript,Vuejs2,Axios,我正在使用axios解析JSON数据,以使用Vue.js使用API。有一个字段值10,20分钟后可以更新为11 我遵循以下代码示例: getFollowers(){ 返回新承诺((解决、拒绝)=>{ axios.get()https://api.github.com/users/octocat') .然后(响应=>解析(响应)) .catch(错误=>拒绝(错误)) }); }因此,有两种方法可以做到这一点 一种是使用WebSocket,它是从客户端到服务器的双向连接。这需要在服务器上进行特定

我正在使用axios解析JSON数据,以使用Vue.js使用API。有一个字段值
10
,20分钟后可以更新为
11

我遵循以下代码示例:

getFollowers(){
返回新承诺((解决、拒绝)=>{
axios.get()https://api.github.com/users/octocat')
.然后(响应=>解析(响应))
.catch(错误=>拒绝(错误))
});

}
因此,有两种方法可以做到这一点

一种是使用WebSocket,它是从客户端到服务器的双向连接。这需要在服务器上进行特定配置,并且必须更新客户端代码来处理数据推送。也许是你开始的好方法

另一种方法是在客户机上使用轮询。使用计时器,使其每N秒向API发出一个请求,并使用响应进行更新


关于这两种方法的利弊。

您无需返回新的承诺,因为如果在“方法”中有此承诺,我不确定您将如何对待此承诺,但axios本身已经在您的查询中返回了承诺,您需要做的是:

getFollowers() {
  axios.get('https://api.github.com/users/octocat')
  .then(response => this.$set(this, 'data', response.data))
  .catch(err => (throw error))
 }

您可能需要使用套接字将这些更改推送到前端。但解释如何做对Q/A格式来说太宽泛了。好吧,如果我在几分钟的间隔后向api链接发送请求,这将是一个好方法?长轮询有时是可以的,但要注意设置的间隔。如果间隔太小,您的服务器性能将因来自多个用户的请求数量而受到影响。谢谢,我正在考虑第二种选择。这是一个好方法吗?这真的取决于你设定的时间间隔,正如在最初的问题评论中提到的那样。您可能会发现,许多解决方案实际上都依赖于外部因素,其中,
它依赖于
是唯一真正的答案