programing

감시 어레이에서 인덱스를 취득하다

goodsources 2022. 7. 28. 00:04
반응형

감시 어레이에서 인덱스를 취득하다

어레이의 변경을 감시하는 vue 애플리케이션이 있습니다.잘 되고 있어요.그러나 워치 콜백은 이전/새 값으로만 전달되기 때문에 변경된 어레이 항목의 인덱스를 얻는 방법을 잘 모르겠습니다.

데모: http://jsfiddle.net/q3zd4fmv/

간단한 예:

new Vue({
    el: '#demo',
  data: {
    things: [{foo:1}, {foo:2}]
  },
  watch: {
    things: {
      handler: function (val, oldVal) {
        alert('a thing changed')
      },
      deep: true
    }
  },
  methods: {
    change: function () {
        this.things[0].foo = 5
    }
  }
})

아쉽게도 개봉 후로는 아닙니다.인수 파괴와 커스텀워치 기능의 조합을 사용하면, 그것을 실행할 수 있는 것을 실현할 수 있습니다.예를 들어,

new Vue({
    el: '#demo',
  data: {
    things: [{foo:1}, {foo:2}]
  },
  methods: {
    change: function (...args) {
        let [thing, after, before] = args;
        
        console.log(thing);
    }
  },
  mounted: function(){
    this.things.forEach(thing => {
      this.$watch(() => thing, this.change.bind(null, thing))
    });
  }
})

언급URL : https://stackoverflow.com/questions/57008485/get-index-from-watched-array

반응형