Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue JS 2数据对象会发生更改,但方法不会更改';跑不动_Javascript_Vue.js - Fatal编程技术网

Javascript Vue JS 2数据对象会发生更改,但方法不会更改';跑不动

Javascript Vue JS 2数据对象会发生更改,但方法不会更改';跑不动,javascript,vue.js,Javascript,Vue.js,我有以下Vue JS组件,在重新呈现数据更改时遇到问题 Vue.component('careers-list', { template: ` <div id="career-list"> <div class="context"> <div v-for="career in careerData"> <h1>{{ career.fields.jobTitle }}</h1>

我有以下Vue JS组件,在重新呈现数据更改时遇到问题

Vue.component('careers-list', {
  template: `
  <div id="career-list">
    <div class="context">
      <div v-for="career in careerData">
        <h1>{{ career.fields.jobTitle }}</h1>
        <div v-html="career.fields.jobDescription">
        </div>
      </div>
    </div>
    <div id="career-pagination">
      <button>prev</button>
      <button>1</button>
      <button v-on:click="increaseCount">next</button>
    </div>
  </div>`,

  data: function() {
    return {
     careerData: [],
     paginationCount: 0
    }
  },

  created: function() {
   this.fetchData();
  },

  methods: {
    fetchData: function() {
      client.getEntries({
        skip: this.paginationCount,
        limit: this.paginationCount + 7,
        order: 'sys.createdAt'
      })
      .then(entries => {
        this.careerData = entries.items;
        this.careerData.map(function (career) {
          career.fields.jobDescription = (marked(career.fields.jobDescription));
        });
      });
    },
    increaseCount: function() {
      this.paginationCount += 7;
    }
  }
});

var app = new Vue({
  el: '#app'
});
在我的应用程序中,这些行决定将返回数据库中的多少条记录。我正在我的数据对象中为此使用计数
分页计数:0

然后,我在我的组件模板中的一个按钮上设置了一个事件:
next

单击此按钮时,它将使用
递增计数
方法更新
分页计数

当我呈现我的应用程序并单击按钮时,paginationCount会增加,但是我的
fetchData
方法不会重新呈现应用程序以根据计数显示适当的数据

我认为Vue会自动更新任何包含已更改数据对象的方法,但我猜情况并非如此,或者我做得不对

paginationCount
发生更改时,您知道如何更新我的
fetchData
方法吗

谢谢,Nick

您需要在此处使用,它正好适合您的用例:

当您想要执行异步或昂贵的操作以响应不断变化的数据时,这是最有用的

方法不会执行,因为您不会从中返回任何内容,这取决于vue数据变量

paginationCount
变量更改时,必须调用方法:

  data: {
     careerData: [],
     paginationCount: 0
  },
  watch: {
    // whenever paginationCount changes, this function will run
    paginationCount: function (newPaginationCount) {
       this.fetchData();
    }
  },
  data: {
     careerData: [],
     paginationCount: 0
  },
  watch: {
    // whenever paginationCount changes, this function will run
    paginationCount: function (newPaginationCount) {
       this.fetchData();
    }
  },