深入观察无法在对象Vue上工作

时间:2018-08-01 03:08:17

标签: javascript oop vue.js

我在数组上设置了监视程序,并启用了深度监视,但是,当数组更改时,处理程序功能不会触发,在数据返回的对象中定义了应用程序。这是代码:

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

2 个答案:

答案 0 :(得分:3)

Vue无法检测到对数组的某些更改,例如:

  

直接使用索引设置项目时,
    例如arr [indexOfItem] = newValue

您可以同时使用以下触发器数组更改检测:

Vue.set(arr, indexOfItem, newValue)

arr.splice(indexOfItem, 1, newValue)

您可以更好地了解阵列更改检测here

答案 1 :(得分:0)

如果您使用 arr[ index ] = 'some value' 重置数组,Vue 不会跟踪此变量。最好使用Vue array’s mutation method。这些方法用于跟踪 Vue 的数组变化检测。

它对我有用。