如果后端api数据值在vue js中发生变化,如何自动更新前端?

时间:2017-10-31 13:07:44

标签: javascript vuejs2 axios

我在api链接中使用vue js框架使用axios解析json数据。有一个字段值:10,20分钟后可以更新。 然后价值将是11。 如何在fronend中更新此值。 有什么建议吗?



getFollowers() {
      return new Promise((resolve, reject) => {
        axios.get('https://api.github.com/users/octocat')
          .then(response => resolve(response))
          .catch(err => reject(error))
      });
 }




我正在关注此网址:https://jsfiddle.net/jonataswalker/416oz6ga/

我希望如果关注者值改变我的前端值会自动更改。

2 个答案:

答案 0 :(得分:3)

所以,你有两种方法可以做到这一点。

一种是使用websockets,它是从客户端到服务器的双向连接。这需要在您的服务器上进行特定配置,并且您必须更新客户端代码以处理数据推送。 A recent Medium post可能是您入门的好方法。

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

A good breakdown has already been written关于两者的利弊。

答案 1 :(得分:0)

你没有必要返回一个新的承诺,因为如果这是在“方法”中,我不知道你将如何对待这个承诺,但是axios本身已经在你的查询中返回了一个承诺,你需要做的是:

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