为了满足您的要求,我们需要对代码进行一些调整。以下是一些建议的步骤:
- 修改
getList
方法,让其每次只获取最新的一条数据。 - 比较新数据与
oldData
(最后一次存储的数据)。 - 如果新数据与
oldData
不同,则表示有新的数据。
以下是具体实现:
methods: {
...
getList(active) {
let url = this.$api_url.income_list + '?page=0&tag=list'; // 假设page=0总是获取最新的数据
url = url + '&type=' + active;
this.$axios.get(url).then((res) => {
if (res.data.code === 0) {
const fetchedData = res.data.data[0]; // 假设返回的是一个数组,并取其第一个元素作为最新数据
// 如果 oldData 为空或 fetchedData 的某个关键属性与 oldData 不同,则视为有新数据
if (!this.oldData || fetchedData.id !== this.oldData.id) { // 假设数据有一个唯一的 'id' 属性
this.newData.push(fetchedData); // 将新数据添加到 newData 数组中
this.oldData = fetchedData; // 更新 oldData 为最新获取的数据
}
}
});
},
...
}
以上代码中的假设基于常见的 API 结构。您可能需要根据实际的 API 返回格式进行适当的调整。
此外,您提到每秒获取一次数据,所以 setInterval
的间隔应该设置为 1000
(1秒),而不是 5000
(5秒):
mounted() {
this.s_timer = setInterval(() => {
this.getList(0)
}, 1000); // 每1秒执行一次
}
请根据您的实际需求和 API 的结构调整上述代码。如果您有其他问题或需要进一步的帮助,请告诉我。