深入观察不在对象 Vue 上工作

kum*_*ail 4 javascript oop vue.js

我在一个数组上设置了一个观察器,并在它上面启用了深度观察,但是当数组更改时处理程序函数不会触发,应用程序是在 data 中返回的对象中定义的。这是代码:

  watch: {
    applications: {
      handler: function(val, oldVal) {
        console.log('app changed');
      },
      deep: true,
    },
    page(newPage) {
      console.log('Newpage', newPage);
    },
  },
Run Code Online (Sandbox Code Playgroud)

Ian*_*ong 15

Vue 无法检测到数组的某些更改,例如当您直接在索引中设置项目时:

例如 arr[indexOfItem] = newValue

以下是检测数组变化的一些替代方法:

Vue.set(arr, indexOfItem, newValue)
Run Code Online (Sandbox Code Playgroud)

或者

arr.splice(indexOfItem, 1, newValue)
Run Code Online (Sandbox Code Playgroud)

您可以在此处更好地了解数组更改检测