监视v-for循环中改变的项并表示出来

clipboard.png

如图一数据表格,用v-for循环出来,大概每1秒钟请求一次数据
想让每次请求数据时,有改变的行突出显示,不知vue2中可有办法实现这个需求 ?

阅读 2.9k
2 个回答

我觉得最好的办法是在你赋值之前对加载到的数据进行处理。

<table>  
  <tr v-for="item in items" :class="item.isChanged ? 'changed' : ''">....</tr>
</table>
export default {
  data() {
    return {
      items: [],
    }
  }
  methods: {
    fetch() {
      fetch(API)
        .then(response => {
          const items = keyBy(this.items, 'id');
          this.items = response.map(item => {
            item.isChanged = item.value !== items[item.id].value;
          });
        });
    }
  },
  mounted() {
    setInterval(this.fetch.bind(this), 60000);
  },
}

写一个 oldlist, 一个 list , 用 watch 监控 list, 把老值赋值给 oldlist , 然后两个 list 做判断, class="{new: oldlist[i] != list[i]}" <- 这里瞎写的不要介意.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题