- 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
- }
-
- };
- },