为什么我的Vue Js创建的方法不起作用?

时间:2019-08-19 15:44:19

标签: vue.js axios

这是我的代码: 这样,但是现在遵循一个代码块:

el: '#app',
data: {
  content: '',
  posts: [],
},

ready: function() {
  this.created()
},

created() {
  axios
    .get('http://localhost/BUproject/posts')
    .then(response => (this.posts = response.data))
},

1 个答案:

答案 0 :(得分:1)

首先ready生命周期已在Vue 2.x中弃用。您应该改用mounted

第二,我认为它之所以没有保存在posts数据上,是因为您在响应中加上了括号而不是大括号。

第三:如果使用created,则不需要在已安装的组件上调用它。在挂载之前被调用。如果要在安装时调用axios请求,则应在方法上进行。请参见下面。

el: '#app',
data: {
  content: '',
  posts: [],
},

mounted() {
  // if you want to call it on component mounted
  this.getPosts()
},

created() {
  // if you want to call it on component created
  this.getPosts()
},

methods: {
  getPosts() {
    axios.get('http://localhost/BUproject/posts').then(response => {
      this.posts = response.data
    })
  },
},

请检查Vue的lifecycle hooks documentation