Javascript Vue JS 2数据对象会发生更改,但方法不会更改';跑不动
我有以下Vue JS组件,在重新呈现数据更改时遇到问题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.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();
}
},