VueJS连接到外部数据

时间:2017-01-05 15:55:37

标签: javascript json rest vue.js

我正在学习VueJs。我做了一个简单的项目,你可以在这里看到:



var vuePosts = new Vue({
  el: '#vue-posts',
  data: {
    posts: [
      {title: 'title 1', body: 'message 1'},
      {title: 'title 2', body: 'message 2'}
    ]
  }
})

<script src="https://unpkg.com/vue/dist/vue.js"></script>

<div class="vue-test" id="vue-posts">
  <h1>Vue Test</h1>
  <ul v-for="post in posts">
    <li>
      <h1>{{post.title}}</h1>
      <p>{{post.body}}</p>
      <hr />
    </li>
  </ul>
</div>
&#13;
&#13;
&#13;

正如你所看到的,我正在做一个v-for并为js文件发帖子。

我的问题是我应该怎么做我想使用来自外部来源的数据,如

https://jsonplaceholder.typicode.com/posts

如何将数据导入我的data:并将其命名为帖子?

1 个答案:

答案 0 :(得分:2)

您可以创建一个方法,该方法将调用远程API,获取数据并将其分配给您的数据变量this.posts。受问题here启发的代码如下所示:

  methods: {
    getPosts: function() {
      var that = this
      $.ajax({
        url: 'https://jsonplaceholder.typicode.com/posts',
        method: 'GET'
      }).then(function (response) {
        if(response.error) {
          console.err("There was an error " + response.error);
        } else {
          console.log(response.posts);
          this.posts = response.posts
        }
      }).catch(function (err) {
        console.error(err);
      });
    }
  }

并且您可以从已安装的块中调用此方法,这将在您的组件安装时获取并分配帖子。

mounted () {
  this.getPosts()
}

您还可以查看我的answer如何使用axios进行api调用的HTTP客户端

请参阅工作笔here