Vue 数据监听问题

<template>
  <div>
    <p>{{msg}}</p>
    <div v-for="(item, index) in list">
      <p>{{item.name}} - {{item.age}}</p>
    </div>
  </div>
</template>

<script>
export default {
  props: ["[list"],
  data() {
    return {
      msg: ""
    };
  },
  methods: {},
  watch: {
    // 这里需要怎么写 比较好
    // ....
  }
};
</script>

list 是外面传进来,每隔5秒, list会发生变化(传进来的list 会隔5秒发生变化),
第一次传进来的list: [{name: "小明", age: 15, status: 2}, {name: "小红", age: 14, status: 1},{name: "小花", age: 13, status: 1},]
隔了几秒后,第二次传进来的list: [{name: "小明", age: 15, status: 2}, {name: "小红", age: 14, status: 2},{name: "小花", age: 13, status: 1},]
再隔了几秒后,第三次传进来的list: [{name: "小明", age: 15, status: 2}, {name: "小红", age: 14, status: 2},{name: "小花", age: 13, status: 2},]

如何比较好写法 去监听list的变化, 当数组中每个数据的status都为 2 的时候, 将 msg 赋值为 “数据更新完成”, 反之,list中的有任意一条数据的status 不等于2 时, 就让 msg 赋值为 “数据正在更新” 呢。。。
求解惑....

阅读 2k
1 个回答

用个computed吧.

computed:{
    finished(){
        return this.list.every(v=>v.status===2)    
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题