data() {
return {
tableData: {}
};
},
created() {
this.tableData.id = 1
},
若对象里面本没有这个属性的时候,在操作时将属性添加进去,同时包括之后对这个属性的操作,watch是都检测不到的。
这是因为vue的watch会在初始化的时候通过object.defineProperty给对象的每一个属性都添加watcher来监听内部的变化。所以,后期添加上去的属性是无法检测到的。
解决办法:
如果想在初始化后添加一个属性并进行监听操作,可以使用$set:
this.$set(this.tableData,'id',1)
或者给原属性增加默认值
data() {
return {
tableData: {
id:null
}
};
},