Vue监听数组时如何获取数组中元素属性变化的元素
发布于 3 年前 作者 chaoren 1718 次浏览 来自 问答
粉丝福利 : 关注VUE中文社区公众号,回复视频领取粉丝福利

如下代码,我想通过监听数组中age的变化来获取变化的元素,但是监听的函数发现无法判断前后变化的部分。

export default {
  data() {
    return {
      people: [
        {
          name: 'tom',
          age: 20
        },
        {
          name: 'jack',
          age: 22
        }
      ]
    }
  },
  method: {
    changeAge(i) {
      // if i = 0
      let people = this.people[i]
      people.age = 10
      this.$set(this.people, i, people)
    }
  },
  watch: {
    people: {
      handler(newVal, oldVal) {
        // 这里希望通过判断age的变化来获取变化的元素
        let isEqual = newVal[0].age === oldVal[0].age
        console.log(isEqual) // it is always true
      },
      deep: true
    }
  }
}
回到顶部